自學Java之day08_java之關鍵字static

static簡單概述

static 關鍵字的基本使用,它可以用來修飾的成員變量和成員方法,一旦用了static關鍵字修飾,那麼這樣的內容不再屬於對象而是屬於類,凡是本類的對象都共享使用同一份。我們可以不靠創建對象來調用了。成員變量:操作各種空間。類變量:操作共享空間

static的使用

修飾成員變量

static 修飾成員變量時,該變量稱爲類變量。該類的每個對象都共享同一個類變量的值。任何對象都可以更改 該類變量的值,但也可以在不創建該類的對象的情況下對類變量進行操作。類變量:使用 static關鍵字修飾的成員變量。

定義格式:static 數據類型 變量名;  

例如:

package demo03;

public class MyStudent {
    //定義類變量
    static String room;
}

修飾成員方法

static 修飾成員方法時,該方法稱爲類方法 。靜態方法在聲明中有 static ,建議使用類名來調用,而不需要 創建類的對象。調用方式非常簡單。 類方法:使用 static關鍵字修飾的成員方法,習慣稱爲靜態方法。靜態方法不屬於對象而是屬於類。

定義格式:

修飾符 static 返回值類型 方法名 (參數列表){

     // 執行語句

 }

例如:

package demo03;

public class MyStudent {

    //定義靜態方法
    public static void staticMethod() {
        System.out.println("我是靜態方法");
    }

    // 成員方法
    public void method() {
        System.out.println("這是一個成員方法。");
   
    }

}

如何使用靜態方法和類變量

如果沒有static關鍵字,那麼必須首先創建對象,然後通過對象才能使用它。如果有了static關鍵字,那麼不需要創建對象,直接就能通過類名稱來使用它。無論是成員變量,還是成員方法。如果有了static,都強烈推薦使用類名稱進行調用。對於靜態方法來說,可以通過對象名進行調用,正確,不推薦,這種寫法在編譯之後也會被javac翻譯成爲“類名稱.靜態方法名”。對於本類當中的靜態方法,可以省略類名稱。

  • 訪問類變量格式: 類名.類變量名;
  • 調用靜態方法格式: 類名.靜態方法名(參數)

靜態方法調用的注意事項:

  • 靜態方法可以直接訪問類變量和靜態方法。
  • 靜態方法不能直接訪問普通成員變量或成員方法。反之,成員方法可以直接訪問類變量或靜態方法。
  • 靜態方法中,不能使用this關鍵字。

​​​​​​​​​​​​​​代碼舉例

package demo03;

public class MyClass {

    int num; // 成員變量
    static int numStatic; // 靜態變量

    // 成員方法
    public void method() {
        System.out.println("這是一個成員方法。");
        // 成員方法可以訪問成員變量
        System.out.println(num);
        // 成員方法可以訪問靜態變量
        System.out.println(numStatic);
    }

    // 靜態方法
    public static void methodStatic() {
        System.out.println("這是一個靜態方法。");
        // 靜態方法可以訪問靜態變量
        System.out.println(numStatic);
        // 靜態不能直接訪問非靜態【重點】
//        System.out.println(num); // 錯誤寫法!

        // 靜態方法中不能使用this關鍵字。
//        System.out.println(this); // 錯誤寫法!
    }

}

爲什麼靜態不能訪問非靜態?

static 修飾的內容:

  • 是隨着類的加載而加載的,且只加載一次。
  • 存儲於一塊固定的內存區域(靜態區),所以,可以直接被類名調用。
  • 它優先於對象存在,所以,可以被所有對象共享。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章