Biến cục bộ (Local variables) được khai báo trong method, constructor, hoặc block. Chúng được tạo khi method/constructor/block được gọi và bị hủy khi thoát ra khỏi phạm vi đó.
- Không thể dùng access modifiers cho biến cục bộ.
- Biến cục bộ chỉ nhìn thấy trong method/constructor/block khai báo.
- Được triển khai ở cấp độ stack (stack level).
Ví dụ biến cục bộ
public class Demo {
public void Rank() {
int rank = 0;
rank = rank + 7;
System.out.println("Rank = " + rank);
}
public static void main(String args[]) {
Demo d = new Demo();
d.Rank();
}
}
Kết quả
Rank = 7
Không có khái niệm Biến toàn cục (Global Variables) trong Java.
Thay vào đó, Java dùng biến instance (instance variables / fields) và biến static (class variables) để chia sẻ dữ liệu giữa các method:
- Instance variable: Khai báo trong class, ngoài method. Mỗi object có bản copy riêng. Truy cập qua instance.
- Static variable: Khai báo với từ khóa
static. Chỉ có một bản copy chung cho tất cả instance. Truy cập qua tên class.
Ví dụ biến instance và static
public class VariableDemo {
// Instance variable
private String instanceVar = "Instance";
// Static variable (gần nhất với global variable)
public static String staticVar = "Static";
public void printVars() {
int localVar = "Local"; // Local variable
System.out.println(instanceVar);
System.out.println(staticVar);
System.out.println(localVar);
}
public static void main(String[] args) {
VariableDemo obj = new VariableDemo();
obj.printVars();
System.out.println(VariableDemo.staticVar); // Truy cập static var không cần instance
}
}