Java | mainメソッドの基本

Java Java
スポンサーリンク

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メソッドが見つかりません」
  • 直し方: publicstaticを必ず付ける

引数の形を変えた

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 3Hello 1 Hello 2 Hello 3

つまずき防止の小さなコツ

  • クラス名とファイル名を一致: Hello.javaの中のクラス名はpublic class Hello
  • 大文字小文字は厳密: Mainmainは別物。mainは小文字
  • 1ファイル1入口が基本: mainは通常1つでOK。複数クラスに作ると、どれを実行するか迷いやすい
  • まずは形を守る: 中身より「入口の形が正しいか」を最初に確認するとエラーが減る
タイトルとURLをコピーしました