靜態方法的特點??
??無需實例化??:直接用?類名.方法名()
?調用。
??不能訪問實例成員??:只能訪問類的靜態變量或靜態方法。
??內存中只有一份??:隨類加載而初始化,生命周期與類相同。
// 工具類 MathUtils
public class MathUtils {// 靜態方法:計算平方public static int square(int num) {return num * num;}
}// 直接調用
int result = MathUtils.square(5); // 25
文件結構?
src/
└── com/└── example/├── models/│ └── Counter.java // 包含靜態和實例成員的類└── Main.java // 主類,測試代碼
Counter.java(模型類)
package com.example.models;public class Counter {// 實例變量:每個對象獨立擁有public int instanceCount = 0;// 靜態變量:全局共享public static int staticCount = 0;// 實例方法:操作實例變量public void incrementInstance() {instanceCount++;}// 靜態方法:操作靜態變量public static void incrementStatic() {staticCount++;}// 錯誤示例:靜態方法中嘗試訪問實例變量public static void badMethod() {// System.out.println(instanceCount); // 編譯錯誤!不能訪問實例成員}
}
Main.java(測試主類)?
package com.example;import com.example.models.Counter;public class Main {public static void main(String[] args) {// 創建兩個 Counter 對象Counter c1 = new Counter();Counter c2 = new Counter();// 操作實例變量(每個對象獨立)c1.incrementInstance(); // c1.instanceCount = 1c2.incrementInstance(); // c2.instanceCount = 1// 操作靜態變量(全局共享)Counter.incrementStatic(); // Counter.staticCount = 1Counter.incrementStatic(); // Counter.staticCount = 2// 輸出結果System.out.println("c1 的實例變量: " + c1.instanceCount); // 1System.out.println("c2 的實例變量: " + c2.instanceCount); // 1System.out.println("靜態變量: " + Counter.staticCount); // 2}
}
123