Java | 変数名(識別子)のルールと慣習

Java Java
スポンサーリンク

初心者向けにもっとかみ砕いて、具体的な例(実際にコンパイルできる小さなコード)を交えて丁寧に説明します。読みやすく段階を追っていきます。

変数名(識別子)って何?

プログラムで「これ」を指す短いラベルです。たとえば「りんごの個数」を appleCount という名前で使うと、そのラベルを使って値を読み書きできます。Javaではこうした名前を識別子(しきべつし)と呼びます。


まずは守るべき基本ルール(絶対)

  1. 最初の文字に数字は使えない
    int 7count; はエラー。正しくは int count7; のように数字は後ろに。
  2. 使える文字は基本的に英字・数字・_(アンダーバー)・$のみ(技術的にはUnicodeも使えますが、実務では英数字+アンダーバーが普通)。
    例: my_var, price$ は構文的に可能(ただし $ はほとんど使わない)。
  3. 大文字と小文字は区別される
    scoreScore は別物。
  4. Javaの予約語(キーワード)は使えない
    例: if, for, class, public, static, return, true, false, null などは変数名にできません。
  5. 文字数制限は事実上ないが、短すぎず長すぎずに
    可読性を考えて適切な長さで。

良い名前の付け方(慣習・可読性を高める)

言葉の使い方でコードはぐっと読みやすくなります。

  • 変数(ローカル変数・フィールド)camelCase(先頭は小文字、単語の先頭を大文字)
    例: userName, totalPrice, isLoggedIn
    → 意味が分かる名前にする(xtmp は一時的ならOK)。
  • メソッド名:変数と同じく camelCase、動詞から始めると分かりやすい
    例: calculateTotal(), printReport()
  • クラス名/インターフェース名PascalCase(各単語の先頭を大文字)
    例: Car, UserManager
  • 定数(final static:全部大文字+単語はアンダーバーで区切る(UPPER_SNAKE)
    例: public static final int MAX_COUNT = 100;
  • ループのインデックス:短い名前 (i, j) が許容される(慣習)。

初心者にもわかる具体例(実際に動くコード)

例1:変数の宣言と代入

public class Example1 {
    public static void main(String[] args) {
        int apples = 5;            // 整数を入れる変数
        double pricePerApple = 120.5; // 小数を扱う変数
        String ownerName = "Aoi"; // 文字列を扱う変数

        System.out.println(ownerName + "さんはリンゴを " + apples + " 個持っています。");
        System.out.println("1個の値段は " + pricePerApple + " 円です。");
    }
}
Java

例2:定数の宣言(変更しない値)

public class Example2 {
    public static final double TAX_RATE = 0.10; // 消費税 10%
    public static void main(String[] args) {
        double price = 1000;
        double tax = price * TAX_RATE;
        System.out.println("税額: " + tax);
    }
}
Java

例3:forループと短い変数名の使いどころ

public class Example3 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 0; i < 5; i++) { // i はループカウンタとして一般的
            sum += i;
        }
        System.out.println("合計: " + sum);
    }
}
Java

よくやるミス(エラーになりやすい例)と対処法

  1. 数字から始める
    int 1stNumber; → コンパイルエラー。int firstNumber; にする。
  2. 予約語を使う
    int class = 3; → エラー。別の名前にする(例:classCount はOK(予約語 class を含まない))。
  3. タイプミス(大文字小文字の勘違い)
    int Score = 10; System.out.println(score);score は未定義(Score と区別される)。
  4. 意味のない略語
    int a; int b; より int width; int height; の方が分かりやすい。コメントに頼るより意味のある名前を。
  5. 定数を小文字で書く(慣習違反)
    final int max = 100; → 動くが、慣習的には MAX のようにする。

ちょっと踏み込んだ注意点(実務的)

  • 国際化と可搬性:技術文書やチームでは英語の名前が無難。日本語の識別子は使えるが、他チームやツールでの扱いが面倒になることがある。
  • $_:技術的には使えるが、$ はコンパイラや自動生成コードで使われることが多いので通常の変数名では避ける。_ は単語の区切りに使う場合があるが、Javaでは camelCase が推奨。

練習問題(自分で手を動かそう)

  1. 次のうち変数名として 正しい のはどれ?
    a) 2ndPlace b) _score c) class d) totalAmount
    → 答え: b, d
  2. final を使って定数 MAX_USERS50 に宣言するコードを書け。
    → 答え: public static final int MAX_USERS = 50;
  3. double 型の変数 pricePerItem299.99 を代入して表示する main メソッドを書け。
    → 例(略。上の例を参照)
  4. クラス名の例を3つ挙げよ(慣習に従って)。
    → 答え例: Product, UserManager, OrderService
  5. for で 1 〜 10 までの合計を計算するコードを書け。
    → 答え(参考):
int sum = 0;
for (int i = 1; i <= 10; i++) {
    sum += i;
}
System.out.println(sum);
Java

最後に — 良い名前付けのコツ(覚えやすい3つ)

  1. 何を表すか説明できる名前にする(count はOKでも c はダメ)。
  2. 一貫性:プロジェクト内で命名規則(camelCaseや定数の書き方など)を揃える。
  3. 短さと明瞭さのバランス:長すぎる名前は読みにくいし、短すぎると意味が分からない。
タイトルとURLをコピーしました