日曜日, 7月 13, 2025
日曜日, 7月 13, 2025
- Advertisment -
ホームニューステックニュース【ポケモン×Java】知識編:public static void main() のホントの意味 #初心者

【ポケモン×Java】知識編:public static void main() のホントの意味 #初心者



【ポケモン×Java】知識編:public static void main() のホントの意味 #初心者

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

🍃 はじめに

「Javaって、ファイルにいろいろ書いてるのに、なんで `BattleStagejava` だけが動くの?」
「ピカチュウのクラス(`Pikachu.java`)もあるんだから、そっちが動いたってよくない?」

そう思ったあなた、大正解。
実はそこに、main()と JVM(Java Virtual Machine)の深い関係があるんだ。

📚 目次

  1. Javaには「実行できるクラス」と「そうでないクラス」がある
  2. main()メソッドってなに?
  3. じゃあ Pikachu.javamain 書いてもいいの?
  4. まとめ:目的に合った設計が正解!

1. Javaには「実行できるクラス」と「そうでないクラス」がある

Javaには、「このファイルから実行できる!」というクラスと、
「そのままでは実行できない」クラスがある。

例:

BattleStage.java

class BattleStage {
    public static void main(String[] args) {
            System.out.println("バトルステージに立った!");
    }
}

これは起動できるクラス。なぜなら…

public static void main(String[] args)

という「おまじない」が書いてあるから!

逆に、次のようなクラスはそのままでは実行できない:

Pikachu.java

public class Pikachu {
    public void cry() {
        System.out.println("ピカ〜〜っ!");
    }
}

これはピカチュウの行動が書かれてるだけなので、
Error: Main method not found(mainがないぞ!)って怒られる!

eclipseでは、そもそも起動できない。
(コマンドプロンプトで実施できるが、それはまた別の機会に、、、)

2. main()メソッドってなに?

Javaでは、プログラムをスタートさせるために特別なメソッドが必要。

それが、これ:

public static void main(String[] args){ ( 処理 ) }

この形が完全一致していないと、JVMは「どこから始めればいいの?」って
迷子になっちゃうんだ。

📒 トレーナーメモ①

  • main:スタート地点の名前(変更できない)
  • static:インスタンスなしで呼べる
  • void:何も返さない
  • String[] args:起動時の引数(命令のオマケ)
    (static , void , String[] args に関しては別の機会に詳しく説明予定)

JVMって何者? JVM(Java Virtual Machine)

  • 簡単に言うと、Javaを実行するための装置(eclipseで実行ボタン押すと動くよ)
  • 起動時に指定されたクラスから main() を探す
  • 見つけたら、そこから実行を始める!

3. じゃあ Pikachu.java に main 書いてもいいの?

うん、書いてもOK!動くよ!

public class Pikachu {
    public static void main(String[] args) {
        System.out.println("ピカチュウが出てきた!");
    }
}

これなら java Pikachu でピカチュウが登場!

でも……

それって、「ピカチュウしか登場しない世界」になっちゃわない?


🎯 プログラムの目的に合ってる?

たとえば、バトルをしたいなら:

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

みたいに、「登場させる役割」は BattleStage にまとめた方が
整理しやすいし、再利用もしやすい

📒 トレーナーメモ②
Javaでは「処理を実行する側(バトルステージ)」と
「実行される側(ポケモン)」を分けるのが基本!


4. まとめ:目的に合った設計が正解!

疑問 答え
public static void main()ってなに? Javaプログラムのスタート地点
mainはどこに書く? 実行対象のクラスに書こう
Pikachu.javaに書いてもいい? 動くけど、設計としては非推奨
なんで BattleStage.javaに書いたの? 複数ポケモンを呼び出して戦わせるための舞台だから!

あとがき

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

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

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

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

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






Source link

Views: 0

RELATED ARTICLES

返事を書く

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

- Advertisment -