static關鍵字(靜態修飾符)

2021-09-12 23:39:35 字數 1899 閱讀 4299

1、static是乙個修飾符,用於修飾成員

2、static修飾的成員被所有的物件所共享

3、static優先於物件存在,因為static的成員隨著類的載入就已經存在了

4、static修飾的成員多了一種呼叫方式,即可以直接被類名呼叫。類名.靜態變數

5、static修飾的資料是共享資料,物件中的儲存的是特有資料

6、如下示例**

class person

}class demo

}

執行結果

1、兩個變數的生命週期不同

成員變數隨著物件的建立而存在,隨著物件的被**而釋放

靜態變數隨著類的載入而存在,隨著類的消失而消失

2、呼叫方式不同

成員變數只能被物件呼叫

靜態變數可以被物件呼叫,還可以被類名呼叫

3、別名不同

成員變數也叫例項變數

靜態變數稱為類變數

4、資料儲存位置不同

成員變數資料儲存在堆記憶體的物件中,所以也叫物件的特有資料

靜態變數資料儲存在方法區(共享資料區)的靜態區,所以也叫物件的共享資料

1、靜態方法只能訪問靜態成員。(非靜態就可以訪問靜態,也可以訪問非靜態)

2、靜態方法中不可以使用this或者super關鍵字

3、主函式是靜態的

我們可以通過下面這兩個示例來了解static的一些細節

**一:

class person1

public void show()

}

執行結果

**二:

class person1

public static void show()

}

執行結果

我們可以看到,上面的兩個**,編譯時都報錯了,原因在於我們在靜態方法 main() 中呼叫了,非靜態方法show()或非靜態變數x,出現上述問題時,我們可以為變數x和方法show()增加static關鍵字,也可以通過下面的修改方法來修改,下面修改方法的原理是,通過新建物件,來呼叫非靜態的變數或方法。

class person1

public void show()

}

執行結果

修飾符,關鍵字

params修飾符 注 引數的最後乙個修飾符用於向方法傳遞數量不定的引數,關鍵字params必須與乙個單獨的一維陣列,並且應該是引數列表的最後一項,並且每個方法宣告中,只能有乙個params修飾符。如下所示 static void main name console.writeline ssn ss...

關鍵字 許可權修飾符

關鍵字,表示當前物件 當前 是哪個物件在執行,則this就只帶哪個物件 this的使用場景 this.屬性 或其當前物件的屬性值 this.屬性 值 設定當前物件的屬性值 this.方法名 呼叫當前物件的方法this語句 通過this來在構造方法中呼叫當前物件的其他構造方法格式 this 引數列表 ...

static靜態修飾符

靜態成員歸整個類所有,不依賴類特定的例項,是被類的所有例項共享。只要這個類被jvm載入,就可以根據類名在全域性資料區域內找到它們。因此,靜態成員可以在任何物件建立之前訪問而無需訪問物件。static關鍵字修飾的成員變數稱為靜態成員變數,簡稱靜態變數。靜態變數是屬於類,但是不依賴類特定的例項。靜態變數...