java裡面給物件賦值,慎用賦值符號( )

2021-04-17 02:33:46 字數 853 閱讀 9339

對於物件來說,注意變數名類似於指標,所以請慎用賦值符號(=)!

比如下面的**:

arraylist alall = new arraylist();

for ( int i = 0; i < 10 ; i ++ ) //此時alall裡面有10個元素:0-9

arraylist alprocessing = new arraylist();

alprocessing = alall;  //這就是有問題的**

//alprocessing.addall( alall);  //這裡是能夠達到目的的正確**

for ( int i = 0; i < alall.size(); i ++ )

}//經過處理之後,alprocessing裡面的元素應該只剩下奇數

for ( int i = 0; i < alprocessing.size(); i ++ )

/*開啟關閉的輸出是:(是錯誤的)

第1個元素:1

第2個元素:3

第3個元素:5

第4個元素:7

第5個元素:8

第6個元素:9

說明:如果採用語句,那麼alprocessing和alall指向記憶體同乙個區域,所以移除alprocessing裡面的元素,也相當於移除了alall裡面的元素,所以alall.size()時刻在變,而且alall裡面的內容也時刻在變。

而如果採用語句就不同,alprocessing和alall分別指向不用的區域.

*//*開啟關閉的輸出是:(是正確的)

第1個元素:1

第2個元素:3

第3個元素:5

第4個元素:7

第5個元素:9

*/  

java 物件 賦值

首先看以下 listlist listmlist new arraylist list mlist mlist.add aaa list.add bbb system.out.println mlist 列印出來的mlist 發現 bbb 也新增進去了,但是我們覺得奇怪,list才新增了 bbb 為...

給多維陣列物件賦值

var messagetable new function var messageinfo function passparm messageinfo messagetable messageinfo i messageid message messageinfo i message message...

理解物件賦值給介面

所以說只實現介面的部分方法 實現該介面 那麼就不可以將物件賦值給該介面 package main import fmt type animal1 inte ce type animal2 inte ce type felid inte ce type cat struct func c cat sa...