////////////////////////////////////////////////////////////////////////////////
//  << j235d.java >>
//
//  クラス(3):コンストラクタ(オーバーロード)
//
//   自分のクラスのコンストラクタの呼び出しに、this()やthis(引数リスト)が使える。
//  この呼び出しは、コンストラクタの先頭に書かなければならない。
//    これらの呼び出しを使って、初期化処理を簡潔に記述することができる。
//
//  this(引数リスト)の使い方を確認する。
//
//  (1)オブジェクトobj1の作成とコンストラクタ実行。
//  (2)オブジェクトobj2の作成とコンストラクタ実行。
//
////////////////////////////////////////////////////////////////////////////////

class C {
  String s; // 変数の定義。
  C() { // 引数0個のコンストラクタ。
    this("名前なし"); 
    System.out.println("(1)引数0個のコンストラクタ:C()");
    System.out.println();
  }
  C(String s) { // 引数1個のコンストラクタ。
    System.out.println("(2)引数1個のコンストラクタ:C(String s)");
    System.out.println("   s = " + s);
  }
}

class j235d {
  public static void main(String args[]) {

    C obj1 = new C(); //(1) 

    C obj2 = new C("茨城太郎"); //(2) 

  }
}
実行結果
% javac j235d.java
% java j235d
(2)引数1個のコンストラクタ:C(String s)
   s = 名前なし
(1)引数0個のコンストラクタ:C()

(2)引数1個のコンストラクタ:C(String s)
   s = 茨城太郎