Javaのmainメソッドの基本
初めてのJavaでまず覚える「入口」がmainメソッドです。プログラムはこの場所から動き始めます。形にルールがあるので、まずは“お約束の形”を丸暗記してOKです。
public class Main {
public static void main(String[] args) {
// ここから実行が始まる
System.out.println("はじめてのJava!");
}
}
Java- 役割: Javaプログラムのスタート地点(エントリーポイント)
- 必須の形:
public static void main(String[] args)(この形でないと実行できない) - 場所: クラスの中に書く(ファイル名とクラス名は基本同じが楽)
形の意味をやさしく分解
- public: どこからでも呼び出せるようにするおまじない
これがないと「mainが見つからない」と言われがち。 - static: インスタンス(newで作る“実体”)なしで呼び出せるようにする
プログラム開始時はまだ何も作れていないので必須。 - void: 戻り値は返さないという意味
「プログラム開始の合図なので、結果を返す必要はない」くらいの理解でOK。 - main: 名前は必ずこれ。違うとJavaが入口だと認識しない。
- String[] args: コマンドライン引数を受け取るための箱
使わなくても必須の形の一部。のちほど例で使います。
まずは動かしてみる:基本の例
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java!");
System.out.println("上から順に実行されます。");
}
}
Java- ポイント:
- 実行順: 上から下へ、書いた順番で動く
- 出力:
System.out.printlnで画面に文字を出す
ありがちなエラーと直し方
名前を変えてしまった
public class Oops {
public static void start(String[] args) { // ← mainじゃない
System.out.println("実行されない…");
}
}
Java- 症状: 実行時に「mainメソッドが見つかりません」となる
- 直し方: メソッド名を
mainに戻す
修飾子を省略した
public class Oops {
static void main(String[] args) { // ← publicがない
System.out.println("これもダメ");
}
}
Java- 症状: 同じく「mainメソッドが見つかりません」
- 直し方:
publicとstaticを必ず付ける
引数の形を変えた
public class Oops {
public static void main(String arg) { // ← 配列じゃない
System.out.println("形が違う");
}
}
Java- 症状: 実行不可(入口と認識されない)
- 直し方:
String[] argsの形に戻す
コマンドライン引数の入門
プログラム起動時に追加の情報を渡せます。argsに入ってきます。
public class Greeter {
public static void main(String[] args) {
// 引数が渡されているか確認
if (args.length == 0) {
System.out.println("使い方: java Greeter あなたの名前");
return;
}
String name = args[0]; // 最初の引数
System.out.println("こんにちは、" + name + "さん!");
}
}
Java- 使い方の例:
- コンパイル:
javac Greeter.java - 実行:
java Greeter 太郎 - 出力:
こんにちは、太郎さん!
- コンパイル:
- ポイント:
- 配列:
argsは配列なのでargs[0]が最初の値 - 安全確認:
args.lengthで個数をチェックしてから使う
- 配列:
練習問題で定着しよう
練習1:足し算プログラム
- 目標: 2つの数値を引数でもらって足し算して表示する
public class Add {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("使い方: java Add 3 5");
return;
}
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int sum = a + b;
System.out.println("合計は " + sum + " です");
}
}
Java- 実行例:
java Add 3 5→合計は 8 です - 注意: 数字でない文字を渡すと
NumberFormatExceptionになるので、まずは数字で試そう
練習2:回数指定の挨拶
- 目標: 引数で回数を指定して、その回数分「Hello」を出力
public class RepeatHello {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("使い方: java RepeatHello 3");
return;
}
int times = Integer.parseInt(args[0]);
for (int i = 1; i <= times; i++) {
System.out.println("Hello " + i);
}
}
}
Java- 実行例:
java RepeatHello 3→Hello 1Hello 2Hello 3
つまずき防止の小さなコツ
- クラス名とファイル名を一致:
Hello.javaの中のクラス名はpublic class Helloに - 大文字小文字は厳密:
Mainとmainは別物。mainは小文字 - 1ファイル1入口が基本:
mainは通常1つでOK。複数クラスに作ると、どれを実行するか迷いやすい - まずは形を守る: 中身より「入口の形が正しいか」を最初に確認するとエラーが減る
