Java | 予約語(キーワード)

Java Java
スポンサーリンク

Javaの予約語の基礎

「予約語」は、Javaがあらかじめ意味を持たせている特別な単語です。プログラムで自由に使う名前(変数名・メソッド名・クラス名など)としては使えません。例えば、ifclass は予約語なので、変数名にするとエラーになります。


予約語がなぜ大事か

  • コンパイルエラーの原因: 予約語を名前に使うと、Javaが「それは構文に使う言葉だよ」と解釈してしまい、コードが通りません。
  • コードの読みやすさ: 予約語には一定の役割があるため、使い方を覚えるとコードの意味がすぐに読めるようになります。
  • ルールの理解: 予約語は「Javaの文法の柱」。仕組みを知ることで、エラーの原因に早く気づけます。

よく使う予約語を例で理解する

制御構文の予約語(処理の流れを決める)

public class ControlExamples {
    public static void main(String[] args) {
        int score = 75;

        // if: 条件で分岐
        if (score >= 80) {
            System.out.println("合格(優)");
        } else if (score >= 60) {
            System.out.println("合格");
        } else {
            System.out.println("不合格");
        }

        // for: 回数で繰り返し
        for (int i = 0; i < 3; i++) {
            System.out.println("i = " + i);
        }

        // switch: 値で分岐
        int day = 2;
        switch (day) {
            case 1: System.out.println("月"); break;
            case 2: System.out.println("火"); break;
            default: System.out.println("その他");
        }

        // while: 条件が真の間繰り返す
        int n = 3;
        while (n > 0) {
            System.out.println("n = " + n);
            n--; // decrement(減らす)
        }
    }
}
Java
  • ポイント: if, else, for, switch, case, default, while, break はすべて予約語。書き方(位置や括弧の使い方)が決まっています。

クラス・メソッド関連の予約語(コードの部品を定義)

public class Person {          // class: クラス定義
    private String name;       // private: このクラスの中だけで使える
    public Person(String n) {  // public: どこからでもアクセス可能
        this.name = n;
    }

    public String getName() {  // return: 戻り値を返す
        return name;
    }
}
Java
  • ポイント: class, public, private, return は予約語。クラスの形やアクセス範囲を決めます。

型に関する予約語(データの種類を決める)

public class Types {
    public static void main(String[] args) {
        int age = 20;       // int: 整数
        double price = 3.5; // double: 小数
        boolean ok = true;  // boolean: 真偽値
        char c = 'A';       // char: 文字
    }
}
Java
  • ポイント: int, double, boolean, char などは「型」を表す予約語。

例外処理の予約語(エラーに備える)

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String[] args) {
        try {                                   // try: 例外が起きそうな処理
            BufferedReader br = new BufferedReader(new FileReader("data.txt"));
            String line = br.readLine();
            System.out.println(line);
            br.close();
        } catch (IOException e) {               // catch: 例外が起きたときの処理
            System.out.println("読み込み失敗: " + e.getMessage());
        } finally {                             // finally: 例外の有無に関わらず最後に実行
            System.out.println("終了処理");
        }
    }
}
Java
  • ポイント: try, catch, finally はセットで使い、失敗に強いコードを書けます。

やりがちなミスと確実に避けるコツ

  • 予約語を変数名にしてしまう:int switch = 1; // ← エラー(switchは予約語)
    • 対策: 名前の先頭を名詞にする(例: switchNumber, mode)や、英単語を少し変える(swoption)と安全。
  • 真偽値やnullを名前にする:boolean true = false; // ← エラー String null = "text"; // ← エラー
    • 対策: true, false, null は「リテラル」。予約語ではないけれど、識別子として使えない特別な値だと覚える。
  • var の誤解:
    • 注意: var は「予約語」ではないが、Java 10以降でローカル変数の型推論に使われる特別な識別子。変数宣言の先頭でしか使えません。
    • 例: var count = 5; // OK(intとして推論) // varをクラス名やフィールド名としては使わない方が無難

手を動かす練習(例題)

例題1: 予約語を避けて適切な変数名にする

  • 課題: 次のエラーになるコードを、正しく動くように変数名を変更してください。
public class Sample1 {
    public static void main(String[] args) {
        int class = 3;
        int for = 10;
        System.out.println(class + for);
    }
}
Java
  • ヒント: classclassNumberforloopCount のように「意味を保ちながら」予約語を避ける。

例題2: 制御構文の使い分け

  • 課題:score に応じて評価を表示するプログラムを書いてください。
    • 80以上: “A”
    • 60以上80未満: “B”
    • それ以外: “C”
  • 例解:
public class Grade {
    public static void main(String[] args) {
        int score = 73;
        if (score >= 80) {
            System.out.println("A");
        } else if (score >= 60) {
            System.out.println("B");
        } else {
            System.out.println("C");
        }
    }
}
Java

例題3: 例外処理の型を意識する

  • 課題: 数値文字列を整数に変換し、失敗したらメッセージを表示してください。
  • 例解:
public class ParseIntExample {
    public static void main(String[] args) {
        String input = "123a";
        try {
            int value = Integer.parseInt(input);
            System.out.println("変換成功: " + value);
        } catch (NumberFormatException e) {
            System.out.println("整数に変換できません: " + input);
        }
    }
}
Java

学ぶ順番のおすすめ

  • 基本の制御構文: if, else, switch, for, while, break, continue
  • 型と宣言: int, double, boolean, char, long, short, byte, float, class, interface
  • アクセス修飾子: public, private, protected, static, final
  • 例外処理: try, catch, finally, throw, throws
  • 応用で遭遇するもの: this, super, new, package, import, return
タイトルとURLをコピーしました