class People1{
public String sex;
public int age;
public void say(){
System.out.println("小黑:"+sex+" 年齡:"+age);
}
}
public class People {
public static void main(String[] args) throws InterruptedException {
People1 p1 =new People1(); //里面先new了兩個對象,分別問p1和p2
People1 p2 =new People1();
p1=p2; //p1.p2指向同一地址p2.
p1.sex="雄性";
p1.age=6;
p1.say();
p2.sex="雌性";
p2.age=12;
p2.say();
}
}
運行結果:
例子先new了兩個對象,分別問p1和p2,然后將p2的值附給了p1,這時,p1的指向就發生了變化:p1就不再指向原來的地址了,此時p1就指向了p2所指向的地址了,也就是說:p1和p2指向了同一塊堆內存。這時先給p1的屬性賦值,并且調用了p1的say方法,這個時候控制臺就打印出來p1所指向的堆地址(實際此時p2指向的也是這個堆地址);然后又給p2的屬性賦值,并且調用了p2的say方法,這個時候控制臺就會打印出來p2所指向的堆地址(實際此時p1指向的也是這個堆地址),兩次打印出來的字符串是不一樣的,因為數值發生了改變。
posted on 2010-10-31 22:48
龍ぜ殘劍 閱讀(118)
評論(0) 編輯 收藏