木曜日, 7月 10, 2025
木曜日, 7月 10, 2025
- Advertisment -
ホームニューステックニュース【ポケモン×Java】知識編 クラス#2 ~コンストラクタの存在意義と可能性~ #初心者 - Qiita

【ポケモン×Java】知識編 クラス#2 ~コンストラクタの存在意義と可能性~ #初心者 – Qiita



【ポケモン×Java】知識編 クラス#2 ~コンストラクタの存在意義と可能性~ #初心者 - Qiita

この記事をまだ読んでない方はこちら
👉 【ポケモン×Java】第2章🔥:『ゆけ、ピカチュウ!』~コンストラクタとインスタンス~

🍃 はじめに

「`new Pikachu()` って書いたら、ピカチュウが登場した!けど……何が起きてるの?」

そんな素朴な疑問から始まる今回のテーマは、**Javaの“はじまりの魔法”**――「コンストラクタ」。

「自分で書いた覚えないのに動いてる!」「書く必要ある?」「どんなふうに使うのが正解?」

そんな疑問を、ポケモンたちの世界で一緒に紐解いていこう!

📚 目次

  1. コンストラクタってなに?まずは正体を知ろう
  2. 書かなくても動くのはなぜ?
  3. 書くならどう書く?コンストラクタの基本形
  4. 初期化ってなに?
  5. 引数つきコンストラクタで冒険をカスタマイズ!
  6. まとめ:コンストラクタは冒険の準備フェーズ

1. コンストラクタってなに?まずは正体を知ろう

コンストラクタとは、クラス内の処理を使うとき、最初に実行する特別なメソッド
Javaでは、こんなふうに書かれているよ:

例:
「ポケモンがモンスターボールから出てくるときに、何をするか決める場所」!

Pikachu.java

class Pikachu {

    // コンストラクタ start
    Pikachu() {
        System.out.println("ピカチュウが登場!");
    }
    // コンストラクタ end
}

📒 トレーナーメモ①

  • クラス名と同じ名前のメソッド Pikachu()
  • 戻り値は書かない(voidもダメ!)
    ※ voidがつくと、ただのメソッドになるぞ!

この「登場時の処理」を書くのが、コンストラクタ(特別なメソッド)なんだ!

2. 書かなくても動くのはなぜ?

えっ?「自分でコンストラクタなんて書いた覚えないけど…?」って人、多いはず!
実は Java は、自分で何も書かなければ

「空のコンストラクタ(デフォルトコントラクタ)」
を自動で用意してくれる。

Pikachu.java

class Pikachu {
    // コンストラクタ start
    // 書いてない、、、
    // コンストラクタ end
    
    void cry() {
        System.out.println("ピカ〜〜ッ!");
    }
}

このクラスでも、

BattleStage.java

class BattleStage {
    public static void main(String[] args) {
        Pikachu pi = new Pikachu();
    }
}

って書けば、ちゃんと動く。
これは「デフォルトコンストラクタ(引数なし)」が裏で用意されてるから!

3. 書くならどう書く?コンストラクタの基本形

でも、自分で何か処理をしたいなら、やっぱり自分で書く必要があるよね。

例:
ピカチュウをモンスターボールから出したときに鳴き声を出す。

Pikachu.java

class Pikachu {

    // コンストラクタ start
    Pikachu() {
        System.out.println("ピカチュウが登場!");
        cry();
    }
    // コンストラクタ end
    
    void cry() {
        System.out.println("ピカ〜〜ッ!");
    }
}

このように、コンストラクタ内に書くことで、
クラスを呼び出すときに、最初に実行したい処理が呼び出される。

4. 初期化ってなに?

ここで新しい言葉が出てくるよ。それが「初期化」。

これは、クラスの フィールド(属性) に、必要な 情報 をセットしておくこと!
これが「初期化」だ。

例:

Pikachu.java

class Pikachu {
    String nickname;

    // コンストラクタ start
    Pikachu() {
        nickname = "ピカ太郎";
    }
    // コンストラクタ end
}

📒 トレーナーメモ②
このコードでは、「nickname」というフィールドに、
最初のニックネームをセットしている。
(例:ここで何も書かなかった場合、このピカチュウには
  ニックネームがついていないことになる!)


5. 引数つきコンストラクタで冒険をカスタマイズ!

ピカチュウごとに違うニックネームをつけたいときは、
引数を使ったコンストラクタが便利!

Pikachu.java

class Pikachu {
    String nickname;

    Pikachu(String name) {
        nickname = name;
    }
}

BattleStage.java

class BattleStage {
    public static void main(String[] args) {
        Pikachu pi1 = new Pikachu("ピカ太郎");
        Pikachu pi2 = new Pikachu("でんきまる");
    }
}

これで「ピカ太郎」「でんきまる」など、違う名前のピカチュウを自由に生み出せる!
コンストラクタって、そんなカスタム性を生む大事な存在!


6. まとめ:コンストラクタは冒険の準備フェーズ

ポイント 内容
書かなくてもOK Javaが自動でデフォルトを用意してくれる
書けば最初にやることを決められる セリフ・名前設定など自由に書ける
初期化の場として重要 フィールドの値をセットするタイミング
引数つきで柔軟性アップ クラスの個性を作れる

📒 トレーナーメモ③
イメージがつかなかったキミには、別のアドバイス!!
冒険を始める前にリュックの整理をするよね。
それが「コンストラクタ」の役目なんだ!
例:

コンストラクタ イメージ 記載例
未記入 リュックのみ用意 記載なし
引数なし リュック用意
(初期装備だけ指定可能)
Bag();
引数あり リュック用意
(ボール、きずぐすり等、
 好きに選べる!)
Bag(ball,medicine);

あとがき

ここまで読んでくれて、本当にありがとうございました。

「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。

次の投稿も、よろしくおねがいします。

💬 コメント・フィードバック歓迎!

「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!






Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -