2017-04-02 28 views
1

古い値を置き換える静的ArrayListには、常に私は静的変数IDを宣言した私は、クラスを持っている

class id 
{ 
    private static int id; 
    public int getid() 
{ 
    return this.id 
} 
public void setid(int id) 
{ 
    this.id=id; 
} 
} 

私はこれらのメソッドをこのクラスのオブジェクトを作成し、呼び出している別のクラスを持っている

class abc 
{ 
    id obj=new id(); 
     int a=obj.getid(); 
    obj.setid(a+1); 

} 

は今、私は今、別のクラス

class ser 
{ 
    private static ArrayList<id>al=new ArrayList<id>(); 

    public static addid(id obj) 
{ 
    al.add(obj); 
} 
} 

問題に静的ArrayListにそれを格納していますそれがオブジェクトをリストに追加するたびにオブジェクトを置き換えるということです。エラーが何を助けてください

+0

[Static vs Instance Variables:Difference?]の重複している可能性があります(http://stackoverflow.com/questions/21204589/static-vs-instance-variables-difference) –

+0

はい、静的変数で行う方法を教えてください宣言しました.... – Aaditya

答えて

0

すべてのオブジェクトidは、クラスの静的メンバーであるため、変数idと同じ値を持ちます。したがって、クラスIDの複数のインスタンスをリストに追加すると、すべてのインスタンスが同じidの値を持ちます。変数idを静的にしてもよろしいですか?

+0

はい、私は、プログラムが実行されるまで、または実行しない限り、idの値を保持する必要があるためです – Aaditya

関連する問題