この記事をまだ読んでない方はこちら
👉 【ポケモン×Java】第2章🔥:『ゆけ、ピカチュウ!』~コンストラクタとインスタンス~
🍃 はじめに
「Javaって、ファイルにいろいろ書いてるのに、なんで `BattleStagejava` だけが動くの?」
「ピカチュウのクラス(`Pikachu.java`)もあるんだから、そっちが動いたってよくない?」
そう思ったあなた、大正解。
実はそこに、main()と JVM(Java Virtual Machine)の深い関係があるんだ。
📚 目次
- Javaには「実行できるクラス」と「そうでないクラス」がある
-
main()
メソッドってなに? - じゃあ
Pikachu.java
にmain
書いてもいいの? - まとめ:目的に合った設計が正解!
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 に書いたの? |
複数ポケモンを呼び出して戦わせるための舞台だから! |
あとがき
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!
Views: 0