Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Biến toàn cục và biến cục bộ trong Java

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
    }
}