1. 程式人生 > >關鍵字this static final super

關鍵字this static final super

關鍵字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修飾引用資料型別的變數(值不能改變) ,型別也不能變