初心者向けにもっとかみ砕いて、具体的な例(実際にコンパイルできる小さなコード)を交えて丁寧に説明します。読みやすく段階を追っていきます。
変数名(識別子)って何?
プログラムで「これ」を指す短いラベルです。たとえば「りんごの個数」を appleCount という名前で使うと、そのラベルを使って値を読み書きできます。Javaではこうした名前を識別子(しきべつし)と呼びます。
まずは守るべき基本ルール(絶対)
- 最初の文字に数字は使えない
int 7count;はエラー。正しくはint count7;のように数字は後ろに。 - 使える文字は基本的に英字・数字・
_(アンダーバー)・$のみ(技術的にはUnicodeも使えますが、実務では英数字+アンダーバーが普通)。
例:my_var,price$は構文的に可能(ただし$はほとんど使わない)。 - 大文字と小文字は区別される
scoreとScoreは別物。 - Javaの予約語(キーワード)は使えない
例:if,for,class,public,static,return,true,false,nullなどは変数名にできません。 - 文字数制限は事実上ないが、短すぎず長すぎずに
可読性を考えて適切な長さで。
良い名前の付け方(慣習・可読性を高める)
言葉の使い方でコードはぐっと読みやすくなります。
- 変数(ローカル変数・フィールド):
camelCase(先頭は小文字、単語の先頭を大文字)
例:userName,totalPrice,isLoggedIn
→ 意味が分かる名前にする(xやtmpは一時的なら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よくやるミス(エラーになりやすい例)と対処法
- 数字から始める
int 1stNumber;→ コンパイルエラー。int firstNumber;にする。 - 予約語を使う
int class = 3;→ エラー。別の名前にする(例:classCountはOK(予約語classを含まない))。 - タイプミス(大文字小文字の勘違い)
int Score = 10; System.out.println(score);→scoreは未定義(Scoreと区別される)。 - 意味のない略語
int a; int b;よりint width; int height;の方が分かりやすい。コメントに頼るより意味のある名前を。 - 定数を小文字で書く(慣習違反)
final int max = 100;→ 動くが、慣習的にはMAXのようにする。
ちょっと踏み込んだ注意点(実務的)
- 国際化と可搬性:技術文書やチームでは英語の名前が無難。日本語の識別子は使えるが、他チームやツールでの扱いが面倒になることがある。
$と_:技術的には使えるが、$はコンパイラや自動生成コードで使われることが多いので通常の変数名では避ける。_は単語の区切りに使う場合があるが、JavaではcamelCaseが推奨。
練習問題(自分で手を動かそう)
- 次のうち変数名として 正しい のはどれ?
a)2ndPlaceb)_scorec)classd)totalAmount
→ 答え: b, d finalを使って定数MAX_USERSを50に宣言するコードを書け。
→ 答え:public static final int MAX_USERS = 50;double型の変数pricePerItemに299.99を代入して表示するmainメソッドを書け。
→ 例(略。上の例を参照)- クラス名の例を3つ挙げよ(慣習に従って)。
→ 答え例:Product,UserManager,OrderService forで 1 〜 10 までの合計を計算するコードを書け。
→ 答え(参考):
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println(sum);
Java最後に — 良い名前付けのコツ(覚えやすい3つ)
- 何を表すか説明できる名前にする(
countはOKでもcはダメ)。 - 一貫性:プロジェクト内で命名規則(camelCaseや定数の書き方など)を揃える。
- 短さと明瞭さのバランス:長すぎる名前は読みにくいし、短すぎると意味が分からない。
