- 「Javaのコンストラクタとは?」
- 「コンストラクタの書き方を知りたい」
本記事ではこれらのお悩みを解決していきます!
Javaをメインにしている現役エンジニアです。
自分が苦労したあの頃を思い出しながら、プログラミングに関する記事を初心者向けに発信しています!
コンストラクタとは
コンストラクタとは、クラスをnew(インスタンス化)したときに必ず実行されるメソッドのことです。
newしたら必ず実行されるという特徴から、以下のような用途で使われます。
- 変数を初期化する
- 変数に初期値を代入する
ちなみに、コンストラクタとはこの部分のことですよ!

Javaのコンストラクタの書き方
Javaのコンストラクタには以下の基本的なルールがあります。
[クラス名と同じ名前] () { }
どこかで見たことがあるような形ですよね。
そうです。メソッドの書き方ととても似ています。
class Human {
String name;
// コンストラクタ
public Human() {
}
// メソッド
public String getName() {
return this.name;
}
}
しかし、もう違いにはお気づきのことでしょう。
メソッドとは違い、コンストラクタには「戻り値の型」の部分が書かれていません。
戻り値の型とは、"void"とか"String"とか、メソッド名の前についているアレですね。
そもそもコンストラクタ内でreturnを書くことができないので、間違えて書かないように気を付けましょう。
Javaのコンストラクタのルール
次に、コンストラクタのルールについてご紹介します。
ルール1: 必須ではない
最初のルールですが、実はコンストラクタは必ず必要なわけではありません。
そのため、初期化または初期代入したいものがない場合は、書かなくても大丈夫です。
※正確には、Javaのクラスにはコンストラクタは必須なので、書かなかった場合は「何もしない」というコンストラクタを追加してくれています。
ルール2: 複数のコンストラクタを使い分けられる
コンストラクタは2つ以上書くことが可能です。
その場合は、必ず引数の数が違うコンストラクタを作成しましょう。
冒頭のサンプルコードのような形ですね。
class Human() {
String name;
int age;
// 引数0個
public Human() {
}
// 引数2個
public Human(String name, int age) {
this.name = name;
this.age = age;
}
}
この場合、newされるときに渡される値が0個か2個かによって、実行されるコンストラクタが変わります。
呼び出す側は、コンストラクタの引数の数に合わせた呼び出しをしないとエラーが出るので気を付けましょう。
class Main {
public static void main(String[] args) {
Human h1 = new Human(); // 引数0個のコンストラクタが実行される
Hunan h2 = new Human("田中太郎", 25); // 引数2個のコンストラクタが実行される
Human h3 = new Human("田中太郎") // ×エラー
Human h3 = new Human("田中太郎", 25, "ケーキが好き") // ×エラー
}
}
ルール3: returnと戻り値の型を書いてはいけない
先ほども少しお話ししましたが、コンストラクタではreturnを書いてはいけません。
returnしないので、戻り値の型を書いてもいけません。
class Human {
String name;
public Human() {
return name; // ×エラー
}
}
Javaのコンストラクタの使い方:応用編
以上でコンストラクタの基本的な使い方は学びました。
しかし実は、コンストラクタにはその他の使い方があります。
this()やsuper()といった書き方です。
こちらは応用的な使い方なので、また別記事で紹介したいと思います。
まとめ
Javaのコンストラクタの使い方とルールをご紹介しました。
コンストラクタとはnewすると必ず実行される部分でしたね。
また、書き方のルールもあるので、ぜひ使いながら慣れていってほしいと思います。
最後までお読みいただきありがとうございました。