java溫習*(4):static關鍵字的應用-成員變量

static是 Java中常用的關鍵字,代表“全局”或者“靜態”的意思。關於static的特徵,可以理解爲:方便在沒有創建對象的情況下來進行某些操作。通常可用於修飾成員變量和方法,也可以形成靜態代碼塊。

實際應用中,可將需頻繁操作、通用型信息設置、公共組件封裝等操作設置爲“靜態”。在本節中,我們將針對“static + 成員變量”的應用進行相關內容總結。

應用一:static + 成員變量 vs 成員變量

概念:

靜態成員:用static修飾的成員變量,通常也稱爲靜態成員、靜態屬性、類成員、全局屬性等。

非靜態成員:沒有被static修飾的成員變量,也稱爲叫做非靜態成員、實例變量,實例成員,對象成員、對象屬性等。

特徵:

靜態成員:

  • 靜態成員是屬於整個類的,由類所進行維護,僅在類初次加載時會被初始化,在類銷燬時回收。

  • 通過該類實例化的所有對象都共享類中靜態資源,任一對象中信息的修訂都將影響所有對象。

  • 由於靜態成員在類加載期間就已經完成初始化,存儲在Java Heap(JDK7.0之前存儲在方法區)中靜態存儲區,因此優先於對象而存在,可以通過類名和對象名兩種方式訪問。

非靜態成員:

  • 非靜態成員屬於對象獨有,每個對象進行實例化時產生各自的成員,隨着對象的回收而釋放。

  • 對象對各自成員信息的修訂不影響其他對象

  • 只能通過對象名訪問。

應用:

可以將頻繁調用的公共信息、期望加快運行效率的成員設置爲靜態。但需注意,由於其生命週期長,即資源佔用週期長,要慎用。

示例:

定義國產車類CarDemo,分別包含靜態屬性firm,對象屬性color、price
定義測試類CarTest,針對CarDemo進行測試
備註:此處由於展示篇幅有限,暫不考慮屬性的訪問權限

總結:

  • 類外可應用“類名.成員名”或“對象名.成員名”的方式訪問非私有靜態成員,更推薦用“類名.成員名”體現其特性。應用“對象名.成員名”時會出現警告,但不影響程序運行。

  • 類內可應用“類名.成員名”或“this.成員名”或“成員”的方式訪問,應用“this.成員名”時會出現警告,但不影響程序運行。

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