第1个回答 2013-11-11
java 方法的传递都是值传递,也就是说,无论是基本类型还是对象类型,都会产生一个拷贝,唯一不同的是基本数据类型,拷贝的是值对象数据类型,拷贝的对象的内存地址public static void swap(Employee x,Employee y){Employee temp = x; //现在x,a都指向同一个对象x = y;y = temp;}所以x,y的交换不会影响的a,b的指向
第2个回答 2018-03-14
类肯定是同一个类,你是没弄明白类和对象的区别吧,这个方法传入的是一个类的对象,方法里面修改就是传入的对象,方法执行完这个对象的值就被修改了。在这个过程中,对象的内存地址没有变,也就是说,对象还是那个对象。
第3个回答 2019-12-22
他们是指向同一个地址的引用,两个引用都指向创建的harry=new
Employee()这个new的对象,所以,对于对象传递来说,引用所指向的实际对象的值肯定会发生变化,这是对象引用的传递,和基本类型的值传递是不一样的!
第4个回答 2018-07-02
你看的是java核心技术卷1吧,好像是第4章的内容。
这里的这句话
“java中方法可以修改对象引用作为参数的状态“
意思是:
这里的“参数的状态”其实说的是对象的field的值,也就是可以改变对象内部的属性field值。
很多时候看不懂是因为翻译的问题,这里我给出英文版的翻译,自己体会一下:
• A method cannot modify a parameter of primitive type (that is, numbers or boolean
values).
• A method can change the state of an object parameter.// 这里的state其实翻译成状态我觉得误导性很强,不如翻译成属性好一点
• A method cannot make an object parameter refer to a new object.
-----------------------------------------------
其实这句话看了这句话下面的例子就应该知道这里的state指的是属性