(10)2017.8.9-面向對象(5)

在學習面向對象的最後,介紹兩個關鍵字,第一個static

static是靜態的意思,它的特點是:

1.static 是一個修飾符,用於修飾成員。 

2.static 修飾的成員被所有的對象所共享。

3.static 優先於對象存在,因爲 static 的成員隨着類的加載就已經存在了。  

4.static 修飾的成員多了一種調用方式,就可以直接被類名所調用 。 類名.靜態成員 。 

5.static 修飾的數據是共享數據,對象中的存儲的是特有數據。  

那它和成員變量到底有什麼區別呢:

第一:兩個變量的生命週期不同。 成員變量隨着對象的創建而存在,隨着對象的被回收而釋放。 靜態變量隨着類的加載而存在,隨着類的消失而消失。

第二: 調用方式不同。 成員變量只能被對象調用。 靜態變量可以被對象調用,還可以被類名調用。 

第三:別名不同。 成員變量也稱爲實例變量。 靜態變量稱爲類變量。 

第四:數據存儲位置不同。 成員變量數據存儲在堆內存的對象中,所以也叫對象的特有數據. 靜態變量數據存儲在方法區(共享數據區)的靜態區,所以也叫對象的共享數據.

static的注意事項 :

1.靜態方法只能訪問靜態成員。(非靜態既可以訪問靜態,又可以訪問非靜態) 
2.靜態方法中不可以使用 this 或者 super 關鍵字。 
3.主函數是靜態的

第二個關鍵字是final
在 Java 中聲明類、屬性和方法時,可使用關鍵字 final 來修飾,表示“最終” ,final 關鍵字爲修 飾符。

使用的final有幾大特性

(1)final 修飾的類不能被繼承。提高安全性,提高程序的可讀性。

(2)final 修飾的方法不能被子類重寫。 

(3)final 修飾的屬性爲常量。一旦初始化後,不可再被賦值。習慣上,常量用大寫字符表示。比如:final double PI=3.14; 但是若變量用 static final 修飾,他叫做全局常量。比如:Math 類的 PI 

final、finally、finalize()進行區分(會寫一個專門的文章寫他們的不同,現在先知道它們看上去差不多可是含義和用法卻大相庭徑)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章