读书人

java摘引传递的一些注释

发布时间: 2012-09-23 10:28:11 作者: rapoo

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 ;

}

}


读书人网 >编程

热点推荐