梳理總結Java static關鍵字的方法作用

概述

關於 static 關鍵字的使用,它可以用來修飾的成員變量和成員方法,被修飾的成員是屬於類的,而不是單單是屬 於某個對象的。也就是說,既然屬於類,就可以不靠創建對象來調用瞭。

定義和使用格式

類變量

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

static 數據類型 變量名;

舉例:

static int id;

靜態方法

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

修飾符 static 返回值類型 方法名 (參數列表){ // 執行語句 }

舉例:在Student類中定義靜態方法

public static void showNum() {
    System.out.println("num:" + numberOfStudent);
}

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

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

小貼士:靜態方法隻能訪問靜態成員。

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修飾的成員可以並且建議通過類名直接訪問。雖然也可以通過對象名訪問靜態成員,原因即多個對象均屬 於一個類,共享使用同一個靜態成員,但是不建議,會出現警告信息。

格式:

// 訪問類變量 類名.類變量名; // 調用靜態方法 類名.靜態方法名(參數);

靜態原理圖解

static 修飾的內容:

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

靜態代碼塊

靜態代碼塊:定義在成員位置,使用static修飾的代碼塊{ }。 位置:類中方法外。 執行:隨著類的加載而執行且執行一次,優先於main方法和構造方法的執行。 

格式:

public class ClassName{ static { // 執行語句 } }

作用:給類變量進行初始化賦值。

用法演示,代碼如下:

public class Game {
    public static int number;
    public static ArrayList<String> list;
    static {
        // 給類變量賦值
        number = 2;
        list = new ArrayList<String>();
        // 添加元素到集合中
        list.add("張三");
        list.add("李四");
    }
}

小貼士: static 關鍵字,可以修飾變量、方法和代碼塊。在使用的過程中,其主要目的還是想在不創建對象的情況 下,去調用方法。

到此這篇關於梳理總結Java static關鍵字的方法作用的文章就介紹到這瞭,更多相關Java static 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: