final關鍵字
final的意思是最終,修飾類的時候不能被繼承,類的成員不能被修改,類的成員方法不能被修改,局部變量就成了常量。final修飾的變量:一次賦值,終身不變。(包括成員變量和局部變量)
Final修飾成員變量必須定義就賦值
final修飾類不可以被繼承,但是可以繼承其他類。
final修飾的方法不可以被子類重寫,但父類中沒有被final修飾方法,子類重寫后可以加final,子類重寫玩加上final孫子類就不能修改子類加上final的了
static關鍵字
靜態不能訪問非靜態,但是非靜態可以訪問靜態。因為靜態是先創造的
被Static修飾過的都屬於本類
Static是靜態常量,不進站和堆,是在方法和數據共享區內掃描並保存,
靜態優先於對象存在。
Static里面不能用this和super關鍵字,一個是代表本類對象一個代表父類對象,因為是對象,所以他倆還沒有創建出來Static就提前創建出來了,所以訪問不到。
被Static修飾的就屬於類了,調用的時候建議用類名調用:
類名.靜態成員變量名
類名.靜態成員方法名(參數)
:
定義靜態常量
public static final 數據類型 變量名 = 值;
具有static和final的共同特點:
創建必須賦值
進入方法和數據共享區,貫穿全局並且直接用類名調用
接口中的每個成員變量都默認使用public static final修飾。
所有接口中的成員變量已是靜態常量,由於接口沒有構造方法,所以必須顯示賦值。可以直接用接口名訪問。(簡單說:就是創建是必須賦值)