javaプログラミング
Javaを勉強中の者です。
以下のソースを実行すると
-------------------------------------------
item[0] = {10, true, true}
item[1] = {11, true, true}
-------------------------------------------
となります。
しかし、
-------------------------------------------
item[0] = {10, true, false}
item[1] = {11, false, true}
-------------------------------------------
が期待する結果です。
public class test{
public static void main(String[] args) {
boolean[] b = {false,false};
Item[] item = new Item[2];
item[0] = new Item(10 ,b);
item[1] = new Item(11 ,b);
item[0].setCandidate(0, true);
item[1].setCandidate(1, true);
b = item[0].getCandidate();
System.out.println("item[0] = {" + item[0].getNumber() + ", " + b[0] + ", " + b[1] + "}");
b = item[1].getCandidate();
System.out.println("item[1] = {" + item[1].getNumber() + ", " + b[0] + ", " + b[1] + "}");
}
}
public class Item{
private int number;
private boolean[] candidate = new boolean[2];
public Item(int number, boolean[] candidate){
this.number = number;
this.candidate = candidate;
}
public void setNumber(int num){
number = num;
}
public int getNumber(){
return number;
}
public boolean[] getCandidate(){
return candidate;
}
public void setCandidate(int num , boolean candi){
this.candidate[num] = candi;
}
}
おそらくcandidate[]が上書きされてる?
説明がうまくできません…
期待通りの結果にするにはどうすればよいのでしょうか?
お礼
この方法でくんでみました。ありがとうございます。