7.5 static關鍵字
目錄
- 7.5 static關鍵字
- 7.5.1 static是什麼
- 7.5.2 static修飾的成員變數是什麼? 有什麼特點?
- 7.5.3 兩種成員變數各自在什麼情況下定義?
- 7.5.4 static修飾成員方法的基本用法
- 7.5.6 靜態程式碼塊
7.5.1 static是什麼
- static是靜態的意思,可以用來修飾成員變數、成員方法。
- static修飾成員變數之後稱為靜態成員變數(類變數),修飾方法之後稱為靜態方法(類方法)。
- static修飾後的成員變數,可以被類的所有物件共享(訪問、修改)。
7.5.2 static修飾的成員變數是什麼? 有什麼特點?
靜態成員變數(有static修飾,屬於類、載入一次,記憶體中只有一份),訪問格式
- 類名.靜態成員變數(推薦)
- 物件.靜態成員變數(不推薦)。
例項成員變數(無static修飾,屬於物件),訪問格式:
- 物件.例項成員變數。
7.5.3 兩種成員變數各自在什麼情況下定義?
- 靜態成員變數:表示線上人數等需要被類的所有物件共享的資訊時。
- 例項成員變數:屬於每個物件,且每個物件的該資訊不同時(如:name,age,money…)
7.5.4 static修飾成員方法的基本用法
成員方法的分類:
- 靜態成員方法(有static修飾,歸屬於類),建議用類名訪問,也可以用物件訪問。
- 例項成員方法(無static修飾,歸屬於物件),只能用物件觸發訪問。
使用場景:
- 表示物件自己的行為的,且方法中需要訪問例項成員的,則該方法必須申明成例項方法
- 如果該方法是以執行一個共用功能為目的,則可以申明成靜態方法。
成員方法的分類和訪問分別是什麼樣的?
靜態成員方法(有static修飾,屬於類和物件共享)訪問格式:
- 類名.靜態成員方法。
- 物件.靜態成員方法。(不推薦)
例項成員方法(無static修飾,屬於物件)的訪問格式:
- 物件.例項成員方法。
7.5.6 靜態程式碼塊
- 格式:static{}
- 特點:需要透過static關鍵字修飾,隨著類的載入而載入,並且自動觸發、只執行一次
- 使用場景:在類載入的時候做一些靜態資料初始化的操作,以便後續使用。
public class base {
public static void main(String[] args) {
}
static {
System.out.println("-------------static-------------");
}
}
隨著類的載入而載入:
public class base {
public static void main(String[] args) {
System.out.println("-------------main方法-------------");
}
static {
System.out.println("-------------static-------------");
}
}