final關鍵字、static關鍵字
阿新 • • 發佈:2018-01-17
() title static關鍵字 hit bsp 技術 成員 static sys
final關鍵字
繼承帶來了好處,同時也會有弊端出現,比如有的時候我們不需要繼承某些類或者類中成員的時候,就可以用到final的修飾了,它可以修飾類,成員變量,成員方法,以及局部變量。final的意思就是最終的意思,被他修飾的成員變量會變成一個不能改變值的常量,被他修飾的成員方法不能被子類所重寫,被它修飾的類不能被繼承。
final的特點:
1、 被final修飾的類,不能被其它的類繼承,也就是說它是一個最終類,但是這個類可以繼承其他類。
2、 被final修飾的方法,不能被其子類所重寫,可以被子類所繼承。
3、 被final修飾的局部變量,終生不能被改變。
4、 被final修飾的成員變量,只能賦值一次。
static關鍵字
需要實現對象的共享數據時,需要在數據前面加上static 修飾。也就是說姓名和年齡是一個人特有的數據,那麽這個人的國籍就是共有的數據國籍前面就要加static修飾。下面用一段代碼來演示:
? Person類
package cn.itcast.Static關鍵字01; /* * 被static修飾的成員變量和不被修飾的成員變量的區別演示 */ public class Person { //共有屬性姓名 String name; //共享屬性國籍 static String country; }
? Test測試類
package cn.itcast.Static關鍵字01; public class Test { public static void main(String[] args) { //創建Person對象,調用共有屬性和共享屬性看他的運行結果 Person p1 = new Person(); Person p2 = new Person(); p1.name = "李四"; p2.name = "王五"; System.out.println(p1.name); System.out.println(p2.name); //static修飾的共享屬性 p1.country = "中國"; System.out.println(p1.country); System.out.println(p2.country); //static修飾的屬性可以用類名直接調用 System.out.println(Person.country); } }
運行結果:
靜態的註意事項:靜態成員不能調用非靜態成員,因為靜態成員是優先於對象存在的,調用的非靜態成員是創建對象後才存在的。
多態調用中,編譯看誰,運行看誰?
1、編譯都看等號左邊的父類
2、運行,靜態方法,運行靜態中的靜態方法
3、運行,非靜態方法,運行子類中的重寫方法
4、成員變量,編譯運行全是父類。
定義靜態常量的格式:public static final 數據類型 變量名 = 值;
註意:定義final常量它的變量名全部大寫,兩個單詞之間用下劃線連接。
final關鍵字、static關鍵字