🦍
【Java】コンストラクタからコンストラクタを呼び出す(備忘録)
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