🦍

【Java】コンストラクタからコンストラクタを呼び出す(備忘録)

2023/01/22に公開

1.まず最初に

コンストラクタとは

2.文法と処理の流れについて

①.this() を使用して、同じクラスの他のコンストラクタを呼び出します。

②.同じクラスのメンバ変数(定数)を参照する際は、this.メンバ変数名(定数名)と記述します。

③.呼び出し先のコンストラクタ → 呼び出し元コンストラクタの順に処理を行います。

3.サンプルプログラム

Sample1.java
package lesson.java;

public class Sample1 {
		// メンバ変数(フィールド)
		String LastName;

		/*  引数なしコンストラクタ(呼び出し先コンストラクタ)
		 * 処理が終わると、引数ありコンストラクタの処理を行う
		 */
		public Sample1(){
			LastName = "山田";
		}
		
		/* 引数ありコンストラクタ(呼び出し元コンストラクタ)
		 * 引数なしコンストラクタの処理が終わると、処理が行われる
		 */
		public Sample1(String Name){
			// 引数なしコンストラクタを呼び出す
			this();	
			// メンバ変数に引数の値を入れる
			this.LastName = Name;
		}
}
Sample2.java
package lesson.java;

public class Sample2 {
	public static void main(String args[]) {
		// Sample1クラスからインスタンス作成
		Sample1 ShowName_1 = new Sample1();
		Sample1 ShowName_2 = new Sample1("山本");
		Sample1 ShowName_3 = new Sample1("田中");
		
		System.out.println(ShowName_1.LastName);
		System.out.println(ShowName_2.LastName);
		System.out.println(ShowName_3.LastName);		
	}
}
実行結果
山田
山本
田中

重要
メンバ変数名(フィールド)とローカル変数名が同じ場合、ローカル変数が優先されます。
メンバ変数名とローカル変数名が同じにならないように注意しましょう。

Discussion