接上章 三個修飾符

2021-08-19 22:11:06 字數 1684 閱讀 6170

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 靜態修飾的內容,在記憶體永遠只有乙個例項 在類例...