Java中this關鍵字、static關鍵字、final關鍵字、instanceof關鍵字用法詳解
1、this關鍵字
this關鍵字代表是物件的引用。也就是this在指向一個物件,所指向的物件就是呼叫該函式的物件引用。實際工作中,存在著建構函式之間的相互呼叫,但是建構函式不是普通的成員函式,不能通過函式名自己接呼叫所以sun公司提供this關鍵字。
a.this只能在非靜態中(沒有static修飾的)函式使用.
b.建構函式間相互呼叫必須放在建構函式的第一個語句中,否則編譯錯誤.
c.可以解決建構函式中物件屬性和函式形參的同名問題.
2、static關鍵字(為了實現物件之間重複屬性的資料共享)
a、static關鍵字的的特點
1)隨著類的載入而載入,靜態會隨著類的載入而載入,隨著類的消失而消失。
2)優先於物件存在。(靜態是先存在,物件是後存在。)
3)被所有例項(物件)所共享。
4)可以直接被類名呼叫。
b、使用static時應注意
1)主要用於修飾類的成員
非靜態成員變數:需要建立物件來訪問。
靜態成員變數:使用類名直接呼叫,也可以通過物件訪問。
2)成員方法
靜態函式中不能訪問非靜態成員變數,只能訪問靜態變數。
靜態方法不可以定義this,super關鍵字。因為靜態優先於物件存在.靜態方法中更不可以出現this。
非靜態函式:非靜態函式中可以訪問靜態成員變數
c、使用static的優缺點
優點:對物件的共享資料進行單獨空間的儲存,節省空間。
缺點:生命週期過長。
3、final關鍵字
final關鍵字主要用於修飾類、類成員、方法、以及方法的形參。
1)final修飾成員變數:說明該成員屬性是常量,不能被修改。一般與static結合使用。(常量不能被修改)
2)final修飾類: 該類是終類,不能被修改。(如JavaAPI中的String、Integer類)
3)final修飾方法:該方法是最終方法,不能被重寫。當一個類被繼承,那麼所有的非私有函式都將被繼承,如果函式不想被子類繼承並重寫可以將該函式final修飾。
4、instanceof關鍵字(主要用於多型)
判斷一個物件是否屬於指定的類別。
使用前提:判斷物件與指定的 類別必須要存在繼承或者實現(介面)的關係。
注:this與super很像,但是this 指向的是當前函式的呼叫物件,super指的是當前呼叫物件的父類。