java引用传递的一些注释

 

package test;

 

public class People {

 

private int id ;

private String name ;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

 

 

 

package test;

 

public class Test {

 

public static void main(String[] args) {

/**

* People p 相当于开辟了一块内存地址,这个地址并不是真的存放对象的数据的,而只是一个指向people的地址

* new People()则相应在地址中放了一个对象 这个对象的名字叫p

* JAVA的实现其实相当于世界上已经有一个people存在,这个地址只是这个people的引用而已

*

*/

People p = new People() ;

/**

* 引用p修改了id和name,那么相当于操作了时间上的存在的那个people,

*/

p.setId(1) ;

p.setName("name") ;

/**

* 这个也是同样的道理了,修改了p2相当于修改了起先的对象了,因为都是引用

*/

// People p2 = p ;

// p2.setId(2) ;

// p2.setName("na") ;

Test t = new Test() ;

People p2 = t.change(p) ; //传进去的是p的引用,你可以理解为指向p的地址

   

System.out.println(p.getId()) ;

System.out.println(p.getName());

int i = 1 ;

int j = i ; //赋值给j的是i的一个复制本

j = 3 ; //所有j的变换并没有改变掉了i的值

System.out.println(i);

//基本数据类型一共的是8个,这8个的地址存放是实实在在的存放的

}

private static People change(People p) {

People p2 = p ;

p2.setId(2) ;

p2.setName("na") ;

return p2 ;

}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值