コンストラクタの定義
- インスタンス化した時に最初に(自動で)呼び出される
- 名前がクラスと同じ
- 戻り値をもたない(void も書かない)
構文
[修飾子]コンストラクタ名(引数) {}
デフォルトコンストラクタ
クラスに1つもコンストラクタが明示的に定義されていない場合
引数なし、中身なしのコンストラクタ(デフォルトコンストラクタ)が自動的に追加される
class Test {
int score;
Test( ) { //引数なし
//実装なし
}
}
戻り値
ちょっと悩んだので記録しておく
//コードA
class Exm {
void Exm() { System.out.println("Say HELLO");}
}
---------------------------------------------
class Test {
public static void main(String[] args) {
Exm e = new Exm();
}
}
//コードB
class Exm {
Exm() { System.out.println("Say HELLO");}
}
---------------------------------------------
class Test {
public static void main(String[] args) {
Exm e = new Exm();
}
}
この場合の出力結果は以下の通り
///コードA
///コードB
Say HELLO
コードAは -void- がついており戻り値が指定されているため、
メソッドとして扱われるためインスタンス化すると
デフォルトコンストラクタが呼び出され、何も出力されない。
void =「戻り値なし」として認識していたため悩んだ。