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

final關鍵字、static關鍵字

() 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關鍵字