1. 程式人生 > >4.Java_關鍵字this、super、static、final(終結器)與基本資料型別轉換

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修飾的域不會發生變化。