4.Java_關鍵字this、super、static、final(終結器)與基本資料型別轉換
一、關鍵字this
1.表示呼叫本類屬性:在類中訪問類的屬性,一定要加上this關鍵字。
2.表示呼叫本類方法:
(1)呼叫普通方法:this.方法名(引數); 當有類的繼承關係時,表示本類方法一定要加上this關鍵字。
(*****)(2)呼叫構造方法:this(引數) ; 注:this呼叫構造方法必須放在構造方法首行,並且不允許成環。
(3)表示當前物件
二、關鍵字super
1.用於方法
(1)用於構造方法(*****):表示呼叫父類構造方法---->super(引數列表)
①當子類呼叫父類無參構造時,super()可寫可不寫。
②當子類呼叫父類有參構造時,super(引數列表)必須要寫,要告訴編譯器當前呼叫的是哪個有參構造。
this與super不可以同時呼叫。
(2)用於普通方法:super.方法名(引數); 用於在子類中明確呼叫父類被覆寫的方法。
2.用於屬性(瞭解)
super.屬性名 ---> 表示呼叫父類中被覆寫的屬性(許可權不是private)
三、關鍵字static
1.static變數--->類屬性(靜態屬性)
稱為類屬性。儲存在全域性資料區中(方法區---所有物件共享區域)。通過類名呼叫,與物件例項化無關。
描述共享屬性使用static屬性(1%)。
2.static方法--->類方法(靜態方法)
通過類名呼叫,與物件例項化無關。常見於工具類方法:Person.fun(); Arrays.arraycopy(......);
注:區域性變數不能用static修飾。static與private均不能載入到外部類之上,內部類可以。
四、關鍵字final---終結器
1.final修飾類(String類以及8大基本資料型別的包裝類,Integer)
- 當一個類被final修飾,表示該類不能擁有子類(該類不允許被繼承)。
- 一旦一個類被final修飾,該類的所有方法都會被預設加上final(成員變數不會加上final)。
2.final修飾方法
- 當一個方法被final修飾,明確表示該方法不允許被覆寫。
-
當一個方法被private修飾後,相當於加了一個final關鍵字。
3.final修飾屬性---常量
(1)final修飾普通資料型別的成員變數(最主要的用途)
- 被final修飾的成員變數必須在宣告時初始化,並且初始化後值不能被修改。
- 宣告時如果不初始化,可以通過構造方法、構造塊初始化。
- final 變數------->常量(值不能改變,每個物件都有自己的final變數,在物件產生時初始化)
- static final-------->全域性常量(所有物件共享此變數,並且在類載入時初始化,效率較高,通過類名呼叫),全域性常量命名規範:多個單詞全大寫,單詞間以_間隔。
(2)final修飾引用資料型別的變數(值不能改變)。
五、資料型別轉換
當使用+、-、*、/、%運算操作時,遵循如下規則:
只要兩個運算元中有一個是double型別的,另一個將會被轉換成double型別的。
如果兩個運算元中有一個是float/long型別的,另一個將會被轉換為float/long型別的,並且結果也是float/long型別。
否則,運算元為byte、short、int、char,兩個數都會被轉為int型別的,並且結果也是int型別的,但是final修飾的域不會發生變化。