Javaでプログラミングを行う際、変数名をどのように付けるかでコードの読みやすさは劇的に変わります。
「自分だけがわかればいい」と思って適当な名前(a, b, dataなど)を付けてしまうと、後から見返した時やチーム開発でバグの原因になりかねません。
これに従うことで、コードの意図が明確になり、保守性の高いプログラムを作ることができます。
この記事では、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
userAge や emailAddress のように、単語の区切りを大文字にすることで、スペースが使えない変数名の中でも意味の区切りが明確になります。
特に isPremiumMember のようなブール型(真偽値)の変数は、質問形式(〜ですか?)の名前にすることで、true か false が入ることが直感的にわかるようになります。
定数の命名規則:アッパースネークケース
変数の中でも、一度値を決めたら変更しない「定数(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_RATE や MAX_LOGIN_ATTEMPTS のように、すべて大文字で書くことで、「これは変更してはいけない値だ」ということが一目で伝わります。
通常の変数(キャメルケース)と定数(スネークケース)を明確に使い分けることは、Javaプログラミングにおける重要な作法です。
使用できる文字と禁止されている文字
Javaの変数名には、使える文字と使えない文字の厳格なルールがあります。
これに違反するとコンパイルエラー(文法エラー)となり、プログラムを動かすことができません。
変数名に使って良い文字
- 英字(a-z, A-Z)
- 数字(0-9)※ただし先頭には使えない
- アンダースコア(_)
- ドル記号($)
- 日本語(漢字、ひらがな、カタカナ)※技術的には可能だが非推奨
変数名に使ってはいけない文字(禁止事項)
- 数字から始まる名前
- NG:
1stPlace,3years - OK:
place1,year3
- NG:
- 予約語(キーワード) Javaですでに意味が決まっている単語は使えません。
- NG:
class,public,int,if,while,returnなど
- NG:
- ハイフン(-)などの演算子や記号 ハイフンは引き算とみなされます。スペースも不可です。
- NG:
user-name,user name
- NG:
予約語と記号の確認コード
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 が使われます。
ただし、ループが長くなったり多重ループになったりする場合は、rowIndex や colIndex のように意味のある名前をつける方が親切です。
// 短いループなら 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の案件を探しやすくなります。
転職エージェントも副業エージェントも、登録・利用は完全無料なので、どんな求人や副業案件があるのか気になる方は、気軽に利用してみるとよいでしょう。


