Java是一種面向對象編程語言,與其他語言一樣支持靜態變量和動態變量。靜態變量和動態變量有一些區別,需要認真了解。
靜態變量是與類一同加載的全局變量。每個類只有一個實例副本,類的所有實例共享該變量。當一個靜態變量被修改時,所有的實例副本都會修改。靜態變量可以通過類名直接訪問,也可以通過實例來訪問,但是推薦使用類名來訪問。
public class Employee { public static String company = "ABC Company"; // 靜態變量,所有實例共享 public Employee(String name) { String empName = name; // 動態變量,每個實例都獨立 } } System.out.println(Employee.company); // 使用類名訪問靜態變量 Employee emp1 = new Employee("Tom"); System.out.println(emp1.company); // 使用實例訪問靜態變量,不推薦
動態變量是實例變量或局部變量,與實例一同創建并存在于對象的生命周期中。每個實例都有自己的一份實例變量,它們的值可以不同。局部變量只存在于變量定義所在的方法中。動態變量必須通過實例來訪問。
public class Employee { private String name; // 實例變量,每個實例都獨立 public Employee(String name) { this.name = name; // 初始化實例變量 } public void setName(String name) { String empName = name; // 局部變量,只存在于setName方法中 this.name = empName; // 修改實例變量的值 } public String getName() { return name; // 獲取實例變量的值 } } Employee emp1 = new Employee("Tom"); emp1.setName("Jerry"); // 修改實例變量的值 System.out.println(emp1.getName()); // 獲取實例變量的值,輸出"Jerry"