【Java初心者向け】コンストラクタの役割と使い方を徹底解説!

こんにちは。ゆうせいです。
今日は、Javaを学び始めたばかりの新人エンジニアの方に向けて、「コンストラクタ」という機能について丁寧に解説していきます。
「なぜわざわざコンストラクタなんてものがあるのか?」
「メソッドとどう違うの?」
といった疑問を一緒に解き明かしていきましょう!
コンストラクタとは?
クラスからオブジェクトを作るときに最初に呼ばれる特別なメソッド
Javaでは、クラス(設計図)からオブジェクト(実体)を作ります。
そのオブジェクトが最初にどうあるべきか、つまり「初期設定」をするために呼ばれるのがコンストラクタです。
例えるなら、コンストラクタは「新しい家を建てたときに、家具を置いたり、電気を通したりする作業」に似ています。
具体的な例で理解しよう!
例:犬のクラス
public class Dog {
String name;
int age;
// コンストラクタ
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public void bark() {
System.out.println(name + "がワンワン吠えた!");
}
}
このクラスを使ってオブジェクトを作るとき:
Dog pochi = new Dog("ポチ", 3);
pochi.bark(); // ポチがワンワン吠えた!
このnew Dog("ポチ", 3)
の部分で、Dogクラスのコンストラクタが呼ばれているのです。
なぜコンストラクタが必要なのか?
1. 初期値の設定ができる
オブジェクトを作ったときに、必要な情報をすぐに渡すことができます。
あとから別のメソッドで設定するよりも、作った瞬間に状態が整っているのはとても便利です。
2. 必須のパラメータを強制できる
例えば、「名前がない犬は作れない」というルールを作ることができます。
それにより、ミスを防ぎ、コードの安全性が上がるんですね。
3. 自動的に呼び出されるので忘れる心配がない
普通のメソッドとは違い、new
でオブジェクトを作ると必ずコンストラクタが呼ばれます。
だから、初期化の処理を忘れてバグになる、なんてことが起きにくいのです。
コンストラクタとメソッドの違いは?
項目 | コンストラクタ | 通常のメソッド |
---|---|---|
呼び出し方 | new クラス名() で自動呼び出し | 手動で呼び出す(例:obj.method() ) |
戻り値 | なし(戻り値は書かない) | 戻り値がある場合も多い |
名前 | クラス名と同じ | 任意の名前をつけられる |
デフォルトコンストラクタとは?
Javaでは、自分で何も書かないと、引数なしの空っぽのコンストラクタが自動で用意されます。
public class Cat {
String name;
}
このように書いても、
Cat tama = new Cat();
は可能です。ですが、自分でコンストラクタを定義すると、デフォルトは作られなくなるので注意しましょう!
コンストラクタのオーバーロード
同じクラスの中で、引数の数や型が違うコンストラクタを複数用意することもできます。
public class Dog {
String name;
int age;
public Dog(String name) {
this.name = name;
this.age = 0; // デフォルト年齢
}
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
}
このようにすると、new Dog("ポチ")
とnew Dog("ポチ", 3)
の両方が使えるようになります!
まとめ:コンストラクタのメリットとデメリット
メリット | デメリット |
---|---|
初期化処理を確実に行える | 処理が複雑になると見通しが悪くなる |
オブジェクト生成時の必須情報を明示できる | コンストラクタが多すぎると混乱しやすい |
ミスを防ぎ、設計の意図を伝えやすい | テストしづらい場合もある |
今後の学習の指針
- コンストラクタのオーバーロードを使いこなせるようにしよう
- thisキーワードや、別のコンストラクタ呼び出し(this(...))の使い方もチェック!
- 「設計時にどんな初期化が必要か?」を意識してクラスを設計してみてください
わからないことがあったら、遠慮せずに質問してね
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。