やろうとしていることは、
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);
  }
}