对象的引用传递 ——面向对象3

引用传递

class Ref1{

int temp=10;

}

public class RefDemo01{

public static void main(String args[]){

Ref1 r1=new Ref1();//实例化对象

r1.temp=20;

System.out.println(r1.temp);

tell(r1);

System.out.println(r1.temp);

}

public static void tell(Ref1 r2){

r2.temp=30;

}

}

打印出

20

30

public class RefDemo02{

public static void main(String[] args){

String str1="Hello";

System.out.println(str1);

tell(str1);

System.out.println(str1)

}

public static void tell(String str2)

{

str2="jike"

}

}

打印只显示Hello

hello

String是不可改变的

所以与上面情况不同

this关键字
static关键字

时间: 2024-10-10 21:49:28

对象的引用传递 ——面向对象3的相关文章

java参数传递(值传递还是引用传递)

http://6924918.blog.51cto.com/6914918/1283761 http://blog.sina.com.cn/s/blog_4b622a8e0100c1bo.html 在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数. ========================================================= http://my.oschina.net/zhdkn/blog/130044 参数的引用传递不是单纯的将对

javascript函数参数传递是值传递还是引用传递?

网上对于js的函数参数传递方式众说纷纭,这里也是自己在网上挑选了比较好的解释: js和java是比较相像的,懂得java中的参数传递方式理解js就不难. 如果说一个变量的值是绝对的基本类型变量如: function add(num){ num+=10; return num; } num=10; alert(add(num)); aelrt(num); //输出20,10 这种结果应该大家都没有任何意义,基本类型变量的值本身就是不可改变的,变的是参数地址.就算变量a和b的值都是10但是二者并没有

Java Object 引用传递和值传递

Java Object 引用传递和值传递 @author ixenos Java中的引用传递: 除了在将参数传递给方法(或函数)的时候是"值传递",传递对象引用的副本,在任何用"="向引用对象变量赋值的时候都是"引用传递",传递对象的引用给另一个变量. 参数传递,传递引用的副本,这看起来是引用传递,实则是传递了副本,这已经是值传递的概念了: 变量赋值,传递引用,这算引用传递 Java参数传递中没有引用传递都是值传递 1.在 Java 应用程序中永

如何理解java的引用传递

1. 数组的引用传递 public class TestArray { public static void changeAry1(int[] ary){ int[] ary1 = {9,9,9}; ary = ary1; } public static void changeAry2(int[] ary){ ary[0] = 100; } public static void main(String[] args) { int[] ary = {1,2,3}; System.out.print

Java面向对象_对象内存分析—值传递和引用传递

对象内存分析,我一直学的比较模糊,今天抽空整理一下,希望能理清. 先说一下,内存分析从何而来,这对于我们这些刚接触java的人来说都比较模糊,就从new关键字说起吧. new关键字表示创建一个对象或者说是实例化对象或者说是申请内存空间,所有程序运行都需要内存来存储数据,这样内存的概念就出来了.举个例子说明:定义一个类Person,属性:char a;int sge;那么创建一个对象申请的内存空间就是所有属性所占字节之和,为6个字节. 详细理一下对象在内存中的结构: Person p=new Pe

Java面向对象-方法的值传递和引用传递

Java面向对象-方法的值传递和引用传递 方法的值传递: 值传递 在方法里改变变量的值 作用范围仅仅是方法里 对外面不影响: 上代码: 1 package com.java1234.chap03.sec03; 2 3 public class Person { 4 5 void speak(int age){ 6 System.out.println("我今年"+age+"岁了"); 7 age=24; // 作用范围是方法里 8 } 9 10 public sta

二维数组 面向对象编程的概念、 类、对象以及引用 和成员方法

1.二维数组(熟悉)1.1 基本概念 一维数组本质上就是一段连续的存储单元,用于存放多个类型相同的数据内容. 二维数组本质上就是由多个一维数组组成的数组,也就是说二维数组中的每个元素都是一维数组,而一维数组的每个元素才是具体数据内容. 1.2 二维数组的声明(1)语法格式 数据类型[][] 数组名称 = new 数据类型[行数][列数];如: int[][] arr = new int[2][5]; - 声明一个具有2行5列元素类型为int的二维数组 其中行下标的范围是:0 ~ 1: 其中列下标

从对象的引用与传递到java的反射机制

正所谓“知己知彼”百战不殆,要想弄清楚引用传递,首先要先弄清楚两块内存(即栈内存,堆内存) 1.简单认识栈内存和堆内存 栈内存:存放的东西,可以理解为一个整型变量(只能保存一个数值),其中保存的是一块(只能是一块)堆内存空间的内存地址数值,为了便于理解就先把它当成对象的名字吧! 堆内存:存放的东西,可以理解为一个对象的具体信息,每块堆内存的开辟都是使用new关键字完成的 通过下面的代码和图不难看出对象的创建和在各内存的分配是怎样完成的 package com.shxt.bishi; class

JavaScript强化教程——对象的值传递和引用传递

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程--对象的值传递和引用传递 function SetName(obj){  obj.name="Tom";//执行之前,此时的obj和Person的name属性均为undefined  obj1=new Object();  obj1=obj;//声明一个全局对象,那么obj.obj1和Person此时应该是同一个对象  }//SetName函数执行完之后,obj对象销毁,其余对象仍然存在  Pe