記事内にはプロモーションが含まれています

【Java】変数名の命名規則まとめ!キャメルケースや禁止文字、良い命名のコツ

【Java】変数名の命名規則まとめ!キャメルケースや禁止文字、良い命名のコツ Java

Javaでプログラミングを行う際、変数名をどのように付けるかでコードの読みやすさは劇的に変わります。

「自分だけがわかればいい」と思って適当な名前(a, b, dataなど)を付けてしまうと、後から見返した時やチーム開発でバグの原因になりかねません。

Javaには、世界中の開発者が共通認識として持っている「命名規則(ネーミング規約)」が存在します。
これに従うことで、コードの意図が明確になり、保守性の高いプログラムを作ることができます。

この記事では、Javaにおける変数名の基本的なルールから、定数との違い、使用できない文字(禁止文字)、そしてプログラミング現場で推奨される「良い名前の付け方」までをサンプルコード付きで詳しく解説します。

変数名の基本ルール:ローワーキャメルケース

Javaの変数名において、最も基本的かつ重要なルールが「ローワーキャメルケース(Lower Camel Case)」を採用することです。

これは、単語の先頭を小文字にし、続く単語の先頭文字を大文字にする記法です。

キャメルケースの具体例

なぜ「キャメル(らくだ)」なのかというと、大文字の部分がラクダのこぶのように見えるからです。

  • 正しい例
    • score(単語が1つの場合はすべて小文字)
    • studentName(2語目は大文字から)
    • totalPriceWithTax(3語目以降も同様に大文字から)
  • 避けるべき例(文法エラーではないが推奨されない)
    • StudentName(先頭が大文字なのは「クラス名」に使われるルール)
    • student_name(アンダースコア区切りは「スネークケース」と呼ばれ、Pythonなどで使われる)

サンプルコードで確認

実際に変数名を定義して出力してみましょう。

public class NamingSample {
    public static void main(String[] args) {
        // ローワーキャメルケースで変数を宣言
        int userAge = 25;
        String emailAddress = "test@example.com";
        boolean isPremiumMember = true;

        System.out.println("年齢:" + userAge);
        System.out.println("メール:" + emailAddress);
        System.out.println("プレミアム会員:" + isPremiumMember);
    }
}

実行結果

年齢:25
メール:test@example.com
プレミアム会員:true

userAgeemailAddress のように、単語の区切りを大文字にすることで、スペースが使えない変数名の中でも意味の区切りが明確になります。

特に isPremiumMember のようなブール型(真偽値)の変数は、質問形式(〜ですか?)の名前にすることで、truefalse が入ることが直感的にわかるようになります。

定数の命名規則:アッパースネークケース

変数の中でも、一度値を決めたら変更しない「定数(constant)」については、通常の変数とは異なる命名規則を使います。

定数は「すべて大文字」で記述し、単語の区切りには「アンダースコア(_)」を使用します。

これを「アッパースネークケース(SCREAMING_SNAKE_CASE)」と呼びます。

定数の定義例

public class ConstantSample {
    // 定数の定義(static final をつけるのが一般的)
    public static final double TAX_RATE = 0.1;
    public static final int MAX_LOGIN_ATTEMPTS = 3;

    public static void main(String[] args) {
        int price = 1000;
        double tax = price * TAX_RATE; // 定数を使用

        System.out.println("消費税:" + tax);
    }
}

実行結果

消費税:100.0

TAX_RATEMAX_LOGIN_ATTEMPTS のように、すべて大文字で書くことで、「これは変更してはいけない値だ」ということが一目で伝わります。

通常の変数(キャメルケース)と定数(スネークケース)を明確に使い分けることは、Javaプログラミングにおける重要な作法です。

使用できる文字と禁止されている文字

Javaの変数名には、使える文字と使えない文字の厳格なルールがあります。

これに違反するとコンパイルエラー(文法エラー)となり、プログラムを動かすことができません。

変数名に使って良い文字

  • 英字(a-z, A-Z)
  • 数字(0-9)※ただし先頭には使えない
  • アンダースコア(_)
  • ドル記号($)
  • 日本語(漢字、ひらがな、カタカナ)※技術的には可能だが非推奨

変数名に使ってはいけない文字(禁止事項)

  1. 数字から始まる名前
    • NG:1stPlace, 3years
    • OK:place1, year3
  2. 予約語(キーワード) Javaですでに意味が決まっている単語は使えません。
    • NG:class, public, int, if, while, return など
  3. ハイフン(-)などの演算子や記号 ハイフンは引き算とみなされます。スペースも不可です。
    • NG:user-name, user name

予約語と記号の確認コード

public class InvalidNameSample {
    public static void main(String[] args) {
        // コンパイルエラーになる例(コメントアウトを外すとエラー)
        
        // int 1number = 10;   // 数字始まりはNG
        // String class = "A"; // 予約語はNG
        // int my-score = 100; // ハイフンはNG
        
        // 使えるが推奨されない例
        String $value = "Dollar"; // ドル記号は自動生成コードなどで使われるため避けるべき
        String _temp = "Under";   // アンダースコア始まりも特殊な用途以外では避ける
        
        System.out.println("エラーになる名前は使えません");
    }
}

int 1number のように数字で始めると、コンパイラが数値リテラル(数字そのもの)と区別がつかなくなるためエラーになります。

また、$_ は文法上は使用可能ですが、フレームワークや自動生成ツールが内部的に使用することが多いため、自分で書くコードの変数名としては避けるのが無難です。

実務で役立つ「良い変数名」をつけるコツ

文法的に正しくても、「良い変数名」でなければ読みやすいコードとは言えません。

ここでは、現場で意識すべき命名のテクニックを紹介します。

具体的で意味のある名前をつける

変数の役割がひと目でわかる名前を心がけましょう。

  • 悪い例d, n, s, info, data
    • 何の日付?何の数字?何の情報?と疑問が湧いてしまいます。
  • 良い例daysSinceCreation, numberOfStudents, studentName
    • 作成日からの経過日数、生徒数、生徒名など、具体的に記述します。

型を推測できる名前にする

変数の型に合わせて、プレフィックス(接頭辞)や単語の選び方を工夫します。

  • Boolean(真偽値)
    • is, has, can, should などで始めます。
    • 例:isValid(有効か?), hasChild(子供がいるか?), canEdit(編集可能か?)
  • Listや配列(コレクション)
    • 複数形にするか、List を付けます。
    • 例:users, userList, items

ループ変数は i, j, k でOK

for 文などで使うカウンタ変数は、慣例的に i, j, k が使われます。
ただし、ループが長くなったり多重ループになったりする場合は、rowIndexcolIndex のように意味のある名前をつける方が親切です。

// 短いループなら i で十分
for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

// 意味を持たせたほうが良いケース
for (int floorIndex = 0; floorIndex < floors.length; floorIndex++) {
    for (int roomIndex = 0; roomIndex < rooms.length; roomIndex++) {
        // 処理内容
    }
}

Javaのスキルを活かして年収を上げる方法

以上、Javaでの変数名の命名規則について解説してきました。

なお、Javaのスキルがある場合には、「転職して年収をアップさせる」「副業で稼ぐ」といった方法を検討するのがおすすめです。

Javaエンジニアの需要は非常に高いため、転職によって数十万円の年収アップはザラで、100万円以上年収が上がることも珍しくありません。

なお、転職によって年収を上げたい場合は、エンジニア専門の転職エージェントサービスを利用するのが最適です。

今すぐ転職する気がなくとも、とりあえず転職エージェントに無料登録しておくだけで、スカウトが届いたり、思わぬ好待遇の求人情報が送られてきたりするというメリットがあります。

併せて、副業案件を獲得できるエージェントにも登録しておくと、空いている時間を活かして稼げるようなJavaの案件を探しやすくなります。

転職エージェントも副業エージェントも、登録・利用は完全無料なので、どんな求人や副業案件があるのか気になる方は、気軽に利用してみるとよいでしょう。