在java中,靜態方法指被static修飾的成員方法。靜態方法不需要通過它所屬的類的任何實例就可以被調用,因此在靜態方法中不能使用this關鍵字,也不能直接訪問所屬類的實例變量和實例方法,但是可以直接訪問所屬類的靜態變量和靜態方法。

本教程操作環境:windows7系統、java8版、DELL G3電腦。
靜態方法(或稱為類方法),指被 static 修飾的成員方法。
靜態方法與實例方法的區別:
-
靜態方法不需要通過它所屬的類的任何實例就可以被調用,因此在靜態方法中不能使用 this 關鍵字,也不能直接訪問所屬類的實例變量和實例方法,但是可以直接訪問所屬類的靜態變量和靜態方法。另外,和 this 關鍵字一樣,super 關鍵字也與類的特定實例相關,所以在靜態方法中也不能使用 super 關鍵字。
-
在實例方法中可以直接訪問所屬類的靜態變量、靜態方法、實例變量和實例方法。
示例:
創建一個帶靜態變量的類,添加幾個靜態方法對靜態變量的值進行修改,然后在 main( ) 方法中調用靜態方法并輸出結果。
public class StaticMethod { public static int count = 1; // 定義靜態變量count public int method1() { // 實例方法method1 count++; // 訪問靜態變量count并賦值 System.out.println("在靜態方法 method1()中的 count="+count); // 打印count return count; } public static int method2() { // 靜態方法method2 count += count; // 訪問靜態變量count并賦值 System.out.println("在靜態方法 method2()中的 count="+count); // 打印count return count; } public static void PrintCount() { // 靜態方法PrintCount count += 2; System.out.println("在靜態方法 PrintCount()中的 count="+count); // 打印count } public static void main(String[] args) { StaticMethod sft = new StaticMethod(); // 通過實例對象調用實例方法 System.out.println("method1() 方法返回值 intro1="+sft.method1()); // 直接調用靜態方法 System.out.println("method2() 方法返回值 intro1="+method2()); // 通過類名調用靜態方法,打印 count StaticMethod.PrintCount(); } }
運行該程序后的結果如下所示:
在靜態方法 method1()中的 count=2 method1() 方法返回值 intro1=2 在靜態方法 method2()中的 count=4 method2() 方法返回值 intro1=4 在靜態方法 PrintCount()中的 count=6
在該程序中,靜態變量 count 作為實例之間的共享數據,因此在不同的方法中調用 count,值是不一樣的。從該程序中可以看出,在靜態方法 method1() 和 PrintCount() 中是不可以調用非靜態方法 method1() 的,而在 method1() 方法中可以調用靜態方法 method2() 和 PrintCount()。
在訪問非靜態方法時,需要通過實例對象來訪問,而在訪問靜態方法時,可以直接訪問,也可以通過類名來訪問,還可以通過實例化對象來訪問。
相關視頻教程推薦:Java視頻教程
站長資訊網