chp8.三個修飾符
一、static(靜態):
1. 概念:static修飾符標示類級別成員。
2. 靜態屬性(類變數):
i. 全類共有的屬性(不屬於某個例項物件)。
ii. 訪問靜態屬性可以使用 類名.靜態屬性名。如:person.sun;
3. 靜態方法(類方法):
i. 全類共有的方法(不屬於某個例項物件)。
ii. 訪問靜態方法可以使用 類名.靜態方法名。
如:system.out.println(); math.random(); arrays.sort();
iii. 靜態方法不能直接訪問非靜態的屬性和方法,(非靜態的屬性和方法,只能 在建立物件後才存在),如需訪問非靜態成員,必須先建立物件,再通過對 象引用呼叫。
iv. 所有引用呼叫的靜態成員,都會轉換成類名呼叫。
super s = new sub();
s.staticmethod();
v. 靜態方法可以繼承,不能覆蓋,沒有多型。
4. 靜態**塊:
i. 類載入的時候被執行一次,不能手動呼叫。
ii. 類載入(classloader):
a. jvm首次(new物件、呼叫靜態成員時、使用子類時、class.forname()) 使用到某個類時,通過classpath查詢該類的.class檔案。
b. 將類的描述資訊(屬性、方法)載入到記憶體中,進行儲存。
iii. 靜態**塊優先載入,可為靜態屬性賦值,或任何程式需要的初始化行為。
5. 載入類的順序:
i. 父類靜態屬性
ii. 父類靜態**塊(按照書寫順序)
iii. 子類靜態屬性
iv. 子類靜態**塊
v. 父類成員屬性
vi. 父類動態**塊
vii.父類構造方法
viii.子類成員屬性
ix. 子類動態**塊
x. 子類構造方法
二、abstract(抽象):
1. 修飾類:不能建立物件。
2. 修飾方法:只能有方法宣告,不能有方法實現。(必須包含在乙個抽象類中)
3. 作用:強制使用多型。
4. 注意:
i. 抽象類中不一定有抽象方法,但有抽象方法的類必須是個抽象類。
ii. 子類繼承抽象類後,必須實現父類中所有的抽象方法,否則子類還是個抽象 類。
三、final(最終):
1. 修飾類:此類不能被繼承。(string、math、system)
2. 修飾方法:此方法不能被子類覆蓋。
3. 修飾變數:此變數值不能改變。(常量)。 user_name
i. 沒有預設值,必須手動賦初始值。
ii. 只能被賦值一次:
a. 手動初始化。
b. 動態**塊初始化(此變數必須是例項變數)。
b. 構造方法初始化(此變數必須是例項變數)。
c. 靜態**塊初始化(此變數必須是靜態變數)。
e. 常用public static final公開靜態常量。
注意:i. 基本資料型別—值不可變。引用資料型別—位址不可變。
ii. abstractfinal 不可連用。
三個修飾符 final
一.final的作用 1.final 可以修飾變數 區域性變數 例項變數 靜態變數 1 final 修飾的變數是作用範圍內的常量,只允許一次賦值,不允許更改。注意 final修飾的變數通常以全大寫字母作為名字,例如 final double pi 3.14 2 final 修飾例項變數,jvm不在分...
八 三個修飾符
三個修飾符 static修飾符 物件共享這種static 定義的東西 包含屬性,方法和 塊 修飾 1.屬性 訪問方式可以通過物件.屬性名方式訪問,也可以通過 類名.屬性名 訪問static修飾的屬性什麼時候被初始化?類變數在類載入的時候就已經初始化了,而類載入在建立物件之前。public class...
java基礎三 訪問修飾符
1 訪問修飾符的作用 1 確定資料成員和方法在其他類和物件中如何被使用 2 確定其他類如何使用和修改資料成員 2 常用的訪問修飾符 1 final 修飾類 其他類不能繼承 方法 不能被子類重寫 變數 不能被修改值,修飾的變數變成常量 2 static 靜態修飾的內容,在記憶體永遠只有乙個例項 在類例...