Javaの変数名の基本
はじめたばかりだと「名前の付け方」は見落としがち。でも、読みやすさとエラー回避の要です。ここでは「絶対守るべきルール」と「読みやすさのための慣習」を、例題と一緒に噛み砕いて説明します。
ルール(守らないとエラーになる)
- 使える文字: 英数字、アンダースコア
_、ドル記号$、全角文字(日本語もOK) - 先頭文字: 数字で始めてはいけない
例:7countはNG、count7はOK - 大文字小文字: 区別される
例:scoreとScoreは別物 - 予約語の禁止:
if,class,returnなどは使えない
例:int if = 1;はコンパイルエラー - 真偽・nullは不可:
true,false,nullは名前にできない - 長さ制限: なし(ただし長すぎると読みにくい)
// OK例
int count = 0;
int _total = 10;
int price7 = 300;
int あいさつ = 1; // 技術的にはOK(ただし一般的には英語が推奨)
// NG例
int 7items = 7; // 先頭が数字なのでNG
int class = 1; // 予約語はNG
int true = 0; // true/false/nullはNG
Java慣習(守ると読みやすくなる)
- 変数名は小文字で始める: 単語の区切りは大文字(キャメルケース) 例:
totalPrice,userName - 短くても意味が伝わる: 文ではなく「名札」 例:
xよりcount、dataよりuserList - ループの一時変数は短く:
i,jなどでOK(短いスコープのときのみ) - 定数(final)は全部大文字+アンダースコア:
例:MAX_VALUE,TAX_RATE - クラス名は先頭大文字(パスカルケース):
例:User,OrderItem - メソッド名は小文字始まりのキャメルケース:
例:printData(),calculateTotal()
// 変数・メソッド・クラスの命名例
class OrderItem { // クラス名(パスカルケース)
static final double TAX_RATE = 0.1; // 定数(全大文字+_)
int quantity; // 変数(小文字始まり)
double unitPrice;
double calculateTotal() { // メソッド(小文字始まりのキャメルケース)
return quantity * unitPrice * (1 + TAX_RATE);
}
}
Javaよくある失敗と改善例
- 曖昧な名前
- 悪い例:
data,info - 良い例:
userList,orderCount
- 悪い例:
- 過剰に短い/長い
- 悪い例:
c,thisIsTheTotalPriceOfAllItemsInTheCart - 良い例:
count,totalPrice
- 悪い例:
- 約束事を混ぜる
- 悪い例:
Total_price(小文字+アンダースコア+大文字の混在) - 良い例:
totalPrice
- 悪い例:
- 先頭数字
- 悪い例:
3rdItem - 良い例:
thirdItemまたはitem3
- 悪い例:
例題で理解を固める
例題1:変数名を直してみよう
- 問題: 次の中でJavaの変数名として「ルール的に」OKなのはどれ?
user-name7up_cacheclassprice$
- 答え:
_cache,price$user-nameはハイフン不可、7upは先頭が数字、classは予約語
例題2:読みやすさを意識
- 問題: ショッピングカートの「合計金額」を表す変数名、どれがベター?
sum,total,totalPrice,priceTotalOfShoppingCart
- 答え:
totalPricesumやtotalは文脈が曖昧、長すぎるのも逆効果
例題3:定数に変える
- 問題: 消費税率を表すならどれが適切?
taxRate,TAX_RATE,TaxRate
- 答え:
TAX_RATE- 定数(変えない値)は全大文字+アンダースコア
小さな実践課題
- 課題1: 年齢、名前、会員フラグ(会員かどうか)を持つ変数を宣言してみてください。
- 目標: ルールを守りつつ、意味が伝わる名前にする。
int age = 28;
String userName = "Sato";
boolean isMember = true; // 「is + 名詞」で真偽が明確
Java- 課題2: 1〜10の合計を求めるコードで、適切な変数名にしてみてください。
int total = 0;
for (int i = 1; i <= 10; i++) {
total += i;
}
System.out.println(total);
Javaすぐ使えるチェックリスト
- 先頭: 文字または
_/$で始まっているか - 禁止: 予約語や
true/false/nullを使っていないか - ケース: 変数/メソッドは小文字始まり、クラスは大文字始まりか
- 定数: 全大文字+アンダースコアになっているか
- 意味: 短すぎず長すぎず、役割がひと目でわかるか
- 一貫性: プロジェクト内で命名スタイルが揃っているか
名前付けは「正しさ」と「伝わりやすさ」の両立です。
