Java のコンストラクタ内の配列について質問があります
やろうとしていることは、
1.Constructor2の配列をConstructorTest2_2のフィールドとして設定します。
2.Constructor2_3のmain関数内で、ConstructorTest2_2を生成し、ConstructorTest2_2のフィールドConstructorTest2に値をセットしています。
3.printlnで中身を確認します。
予定では
Yuki
Yuki
____________
Yuki
Hosono
となるはずが、
Yuki
Hosono
__________
Hosono
Hosono
となり、ConstructorTest2_2内のconstructor[1]に書き込んだつもりのものが
constructor[0]にまで上書きされてしまっています。
どうしてかわかる方いらっしゃいましたら、教えていただけると嬉しいです。
以下、コードです。
public class ConstructorTest2{
static int a;
static String b;
static boolean c;
public ConstructorTest2(int a,String b,boolean c){
this.a = a;
this.b = b;
this.c = c;
}
}
public class ConstructorTest2_2{
ConstructorTest2[] constructor = new ConstructorTest2[2];
public ConstructorTest2_2(){
constructor[0].a = 1;
constructor[0].b = "Yuki";
constructor[0].c = true;
System.out.println(constructor[0].b);
constructor[1].a = 2;
constructor[1].b = "Hosono";
constructor[1].c = false;
System.out.println(constructor[0].b);
System.out.println("______________");
}
}
public class ConstructorTest2_3{
public static void main(String[] args){
ConstructorTest2_2 con = new ConstructorTest2_2();
System.out.println(con.constructor[0].b);
System.out.println(con.constructor[1].b);
System.out.println(con.constructor[0].a);
System.out.println(con.constructor[1].a);
}
}