#(1) 被abstract修飾的類別稱為抽象類別
(2) 語法:
abstract class 類別名稱{}
(3) 特點:抽象類別不能單獨建立對象,但是可以宣告引用
# #(4) 抽象類別可以定義成員變數和成員方法
(5) 抽象類別有建構方法,用於建立子類別物件時,jvm預設建立一個父類別物件;
抽象的建構方法應用在jvm建立父類別物件時套用。
(2) 語法:
存取修飾符abstract 返回值類型方法名(形參列表);注意:abstract和存取修飾符沒有先後順序要求
(3) 特點:抽象方法只有聲明部分,沒有方法的實作部分(連{}都沒有,以; 結尾)
(4) 注意:抽象方法只能定義在抽象類別中;但是抽象類別中即可以定義抽象方法也可以定義非抽象方法
class 子類別名稱extends 抽象類別類別名稱{}#( 2) 要求:如果子類別不想成為抽象類別,則必須覆寫抽象類別父類別中的所有抽象方法(目的:將抽象方法實作部分補上);
如果子類別沒有覆寫父類別中所有抽象方法,必須定義為抽象類,同時不能建立物件
(3) 應用:抽象類別體現了多型的應用
抽象類別名稱參考名稱= new 子類別名稱() ; // 父類型的參考儲存了子類型的物件修飾符之static? (靜態的) 一、static可以修飾屬性 ( 1) 被static修飾的屬性稱為靜態屬性、靜態變數、類別變數
注意:成員變數分為:實例變數與靜態變數(或是靜態屬性、類別變數)
(2) 位置:定義在類別以內,方法以外,被static修飾
(3) 語法:
存取修飾符static 資料型別變數名稱;注意:存取修飾符和static之間沒有先後順序要求,但是都必須在資料類型的前面存取修飾符static 資料型別變數與名稱變數=值值;
(4) 特點:靜態屬性是基於類別而存在,和建立多少對象無關,由所有物件共用
(5) 使用:
a. 透過物件名稱.靜態屬性名稱
b. 直接透過類別名稱.靜態屬性名稱 ——>建議
>建議
>建議
>建議
二、static可以修飾方法
(1) 被static修飾的方法稱為靜態方法// 方法實作、方法符號# }(2) 語法:
存取修飾符static 傳回值型別方法名稱(形參考表){
# | ## 注意:存取修飾符和static之間沒有先後順序要求
(3) 使用:
a.直接通過類別名稱.靜態方法名稱(實參); --》建議
b.透過物件名稱.靜態方法(實參); -->不建議
(4) 靜態方法語法細節:
a. 靜態方法中只能存取本類別的靜態成員(靜態屬性與靜態方法)
b. 靜態方法中無法直接存取本類別的非靜態成員(實例變數非靜態方法)
c. 靜態方法中不能this/super關鍵字
d. 靜態方法能被子類別繼承
e. 靜態方法只能被靜態方法覆蓋,靜態方法沒有體現多態的應用
(5) 靜態方法應用場景:通常將工具類別中方法設為靜態方法,為了方便使用者呼叫
(1) 被static修飾初始化程式碼區塊稱為靜態程式碼區塊
(2) 靜態程式碼區塊的位置:定義在類別以內,方法以為,被static修飾的{}
## class 類別名稱{靜態程式碼區塊
}
}
(3) 作用:在類別載入的時候,依照與靜態屬性定義的先後順序完成靜態屬性的初始化工作
(4) 類別載入:
a. 概念:jvm第一次使用一個類別的時候,透過classPath找到類別對應的.class檔案;
並且對.class檔案進行讀取該類別的資訊;
/「套件名稱、## 方法、成員方法等);
將讀取資訊儲存到jvm記憶體中,其中一個類別只會一次類別載入。
b. 類別載入的時機:(什麼稱為jvm第一次使用一個類別)
I. 第一個存取該類別靜態成員(靜態屬性與靜態方法) 一次建立該類別物件:先完成類別載入;再完成物件的建立
III. 子類別載入,先導致其父類別載入:先加在父類別,再載入子類別
一次呼叫子類別靜態屬性或靜態方法
② 第一次建立子類別物件:先進行類別載入,再完成物件的建立
類別載入
與物件建立時:先完成父類別物件的創建,而最終子類別物件的建立 ##inal##修飾修飾變數
## 存取修飾符final 資料類型變數名= 值;
a. 定義的時候對其初始化,賦值final int a = 3;
## class A{
public A(int a){(4) final修飾的靜態變數將其賦值的機會如下:}
}
a. 定義時對其初始化,賦值b. 使用靜態程式碼區塊對其初始化
## c final static int n;
static{
}
}
(5) final修飾的引用,代表引用中儲存物件不能改變
#二、final可以修飾方法
可以被子類別繼承,但是不允許子類別覆寫.
#三、final可以修飾屬性
被final修飾的類別不能被繼承,即沒有子類別.
以上是Java修飾符abstract、static和final怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!