Java值传递

(看尚学堂视频学习Java总结 点击打开链接


Java传递的方式是值传递,相当于拷贝一份,但这并不意味着我们操作另外的对象时,不会修改原来的值,因为传递的对象还是指向原来对象的地址

 
 
package cn.swu.stormliu;

public class User4 {
	int id;
	String name;
	String pwd;
	
	public User4(int id,String name) {
		this.id=id;
		this.name=name;
	}
	
	public void testTransfer01(User4 u) {
		u.name="小八";
		System.out.println(u);
	}
	public void testTransfer02(User4 u) {
		 u= new User4(200,"小九");
		 System.out.println(u);
	}
	
	
	public static void main(String[] args) {
		User4 u1=new User4(100,"小七");
		System.out.println(u1);
		
		u1.testTransfer01(u1);
		System.out.println(u1.name);
		
		u1.testTransfer02(u1);
		System.out.println(u1.name);
	}
}




在上面的代码中,testTransfer01() 方法将 u1 对象传入,这时 test Transfer01()中的 u 与我们生成的 u1 对象指向同一个地址,所以我们修改 testTransfer01() 方法中的 u 对象的 name 时,原来 u1 的 name 也会改变。

testTransfer02()方法中,我们 new 了一个新的对象,所以这个对象指向另一个地址,我们这个时候修改他的属性时不会修改 u1 的属性。所以当我们 print u1.name 时,输出的还是原来的属性



猜你喜欢

转载自blog.csdn.net/qq_35583772/article/details/80289229