1. 程式人生 > >java 中的別名機制

java 中的別名機制

        將一個物件賦值給另一個物件,實際是將引用從一個地方複製到另一個地方。這意味著假若對物件使用c=d,那麼c和d都指向原本只有d指向的那個物件,下面這個例子將向大家闡釋這點。

     

package gao.com;
class Test{
	int number;
}
public class Assigment {
   public static void main(String[]args){
	   Test t1=new Test();
	   Test t2=new Test();
	   t1.number=25;
	   t2.number=32;
	   System.out.println("t1.number="+t1.number+" t2.number="+t2.number);
	   t1=t2;
	   System.out.println("t1.number="+t1.number+" t2.number="+t2.number);
	   t1.number=1;
	   System.out.println("t1.number="+t1.number+" t2.number="+t2.number);
   }
}
/* 輸出
t1.number=25 t2.number=32
t1.number=32 t2.number=32
t1.number=1 t2.number=1
*/

Test 類非常簡單,它的兩個例項是在main()裡建立的。對每個Test類物件number域都賦予了一個不同的值。然後將t2賦給t1,接著又修改了t1.在很多語言中我們會期望t1和t2總是相互獨立,但由於賦值操作是一個物件的引用,所以修改t1的時候也改變了t2,這是由於t1和t2包含相同的引用,它們指向相同的物件。