程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-list.add() 添加對象時為什麼顯示的都是最後一個對象的屬性?以前添加的值被覆蓋了

java-list.add() 添加對象時為什麼顯示的都是最後一個對象的屬性?以前添加的值被覆蓋了

編輯:編程綜合問答
list.add() 添加對象時為什麼顯示的都是最後一個對象的屬性?以前添加的值被覆蓋了

import java.util.ArrayList;
import java.util.List;

public class Listaa {
private static List list = new ArrayList();

private static int i;

public static void maain(int i) {
    Listaa t = new Listaa();
    t.setI(i);
    list.add(t);
}

public static void main(String args[]) {
    Listaa a = new Listaa();
    for (int i = 0; i < 3; i++)
        maain(i);
    for (int i = 0; i < list.size(); i++) {

        a = (Listaa) list.get(i);
        System.out.println(a.getI());
    }
}

public int getI() {
    return i;
}

public void setI(int i) {
    this.i = i;
}

}
輸出結果是 2 2 2,為什麼不是 0 1 2 ?

最佳回答:


static靜態變量是屬於類的變量,任何時候只有一份,你在循環中給這個變量的賦值了3次,第3次賦值覆蓋了前兩次,所以最終的結果是 2 2 2

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved