關鍵字this static final super
阿新 • • 發佈:2018-11-19
關鍵字this,static,final,super
關鍵字this
- 1.this表示呼叫本類屬性
- 只要在類中訪問類的屬性,一定要加上this關鍵字
- 2.表示呼叫本類方法
a.呼叫普通方法 this.方法名(引數列表)
當有類的繼承關係時,表示該類方法一定要加上this關鍵字
b.呼叫構造方法 this(引數列表)
@this呼叫構造方法必須放在構造方法首行
@this呼叫構造方法不允許成環(比如1呼叫2,2再呼叫1)
- 3. 表示當前物件
關鍵字super
- 1.super用於(子類呼叫父類)方法
- @ ----用於構造方法
當子類呼叫父類無參構造時,super()可寫,可不寫,表示呼叫父類無參構造 - 當子類呼叫父類有參構造時,super(引數列表)必須要寫,要告訴編譯器當前呼叫的是哪個有參構造
- 子類構造方法中呼叫父類構造必須是第一行語句
- this與super不能同時呼叫
- @----用於普通方法super.方法名(引數)
用於在子類中明確呼叫父類被覆寫的方法(不要求必須在第一行語句)
- 2.super用於屬性
- super.屬性名,表示呼叫父類中被覆寫的屬性(許可權不是private)
this和super的比較
關鍵字static
- static 變數–屬性(靜態屬性),用public來修飾
- static屬性屬於類屬性,儲存在全域性資料區中(方法區–所有物件共享區域),通過類名稱呼叫,與物件例項化無關
- 描述共享屬性使用static,不過這種情況用的比較少
- static方法–類方法(靜態方法)
- 通過類名呼叫與物件例項化無關,常見於工具類方法
- static不能用於方法中,區域性變數不能用static修飾;它可以修飾靜態程式碼塊
- 所有的static方法不允許呼叫非static定義的屬性或方法
- 所有的非static方法允許訪問static方法或屬性
關鍵字final
- final關鍵字–終結器
- 1.final修飾類(String類以及8大基本資料型別的包裝類,Integer)
- 當一個類被final修飾,表示該類不能擁有子類(該類不允許被繼承)
一旦一個類被final修飾,該類的所有方法都會預設加上final(成員變數不會加final) - 2.final修飾方法
- 當一個方法被final修飾,明確表示該方法不允許被覆寫
當一個方法被private修飾後,相當於加了一個final關鍵字 - 3.final修飾屬性-常量
class{
final int a; //在棧中
static final int B;//定義全域性常量(在全域性常量區)
}
- a.final修飾普通資料型別的成員變數(最主要的用途)
被final修飾的成員變數必須在宣告時初始化,並且初始化後值無法被修改
如果在宣告時沒有初始化,則必須通過構造方法或者構造塊中初始化
public static final int B;
static{
B = 10;
}
- final變數-常量(值不能被改變,每個物件都有自己的final變數,在物件產生時初始化)可以在主方法中定義常量
- static final -全域性常量(所有物件共享此變數,並且在類載入時初始化,效率較高,通過類名呼叫)(用靜態塊初始化)
全域性常量命名規範:多個單詞全大寫,單詞間 _ 分隔 - b.final修飾引用資料型別的變數(值不能改變) ,型別也不能變