Java 變數 (Variables)
變數是用來儲存資料的容器,每個變數都有名稱和資料型別。
宣告變數
Java 是靜態型別語言,宣告變數時必須指定資料型別:
// 語法:資料型別 變數名稱;
int age;
String name;
double price;
初始化變數
宣告變數時可以同時賦值:
int age = 25;
String name = "Alice";
double price = 99.5;
boolean isActive = true;
也可以先宣告,之後再賦值:
int score;
score = 100;
同時宣告多個變數
// 同一型別可以一起宣告
int x, y, z;
int a = 1, b = 2, c = 3;
// 不建議這樣寫(可讀性差)
int i = 1, j = 2, k = 3;
// 建議分開宣告
int i = 1;
int j = 2;
int k = 3;
變數命名規則
合法的變數名稱:
- 可以包含字母、數字、底線
_、錢字號$ - 必須以字母、底線或錢字號開頭(不能以數字開頭)
- 區分大小寫
- 不能使用 Java 保留字
// 合法的變數名稱
int age;
int _count;
int $price;
int myNumber;
int my_number;
int myNumber2;
// 不合法的變數名稱
// int 2number; // 不能以數字開頭
// int my-number; // 不能使用連字號
// int class; // 不能使用保留字
命名慣例
Java 變數通常使用 camelCase(駝峰式命名):
// 好的命名
int studentAge;
String firstName;
double totalAmount;
boolean isLoggedIn;
// 不好的命名
int x; // 太短,無意義
int studentage; // 沒有使用 camelCase
int STUDENTAGE; // 全大寫通常用於常數
常數
使用 final 關鍵字宣告常數,常數的值不能被修改:
final double PI = 3.14159;
final int MAX_SIZE = 100;
final String APP_NAME = "MyApp";
// PI = 3.14; // 編譯錯誤,不能修改常數
常數命名慣例使用 UPPER_SNAKE_CASE(全大寫底線分隔)。
變數型別
Java 變數主要分為三種:
1. 區域變數 (Local Variables)
在方法、建構子或區塊內宣告的變數:
public void myMethod() {
int x = 10; // 區域變數
// x 只能在這個方法內使用
}
2. 實例變數 (Instance Variables)
在類別內、方法外宣告的變數,屬於物件:
public class Student {
String name; // 實例變數
int age; // 實例變數
public void printInfo() {
System.out.println(name);
}
}
3. 類別變數 (Class Variables)
使用 static 宣告的變數,屬於類別:
public class Counter {
static int count = 0; // 類別變數
public Counter() {
count++;
}
}
變數的預設值
區域變數沒有預設值,必須初始化才能使用:
public void test() {
int x;
// System.out.println(x); // 編譯錯誤,x 尚未初始化
}
實例變數和類別變數有預設值:
| 型別 | 預設值 |
|---|---|
int, byte, short, long | 0 |
float, double | 0.0 |
char | '\u0000' |
boolean | false |
| 參考型別 | null |
var 關鍵字 (Java 10+)
Java 10 開始可以使用 var 讓編譯器自動推斷型別:
var name = "Alice"; // 推斷為 String
var age = 25; // 推斷為 int
var price = 99.5; // 推斷為 double
var numbers = new int[]{1, 2, 3}; // 推斷為 int[]
var 只能用於區域變數,且必須在宣告時初始化。