首頁 > 軟體

詳解Java中static關鍵字的使用和原理

2022-10-18 14:01:41

概述

關於 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關鍵字內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com