1. 程式人生 > 其它 >JAVA面向物件學習——java面向物件概念——成員變數和區域性變數

JAVA面向物件學習——java面向物件概念——成員變數和區域性變數

成員變數和區域性變數

成員變數指的是在類裡定義的變數,也就是前面所介紹的field;區域性變數指的是在方法裡定義的變數。

變數名稱建議第一個單詞首字母小寫,後面每個單詞首字母大寫。Java程式中的變數劃分如圖5.9所示。

成員變數無須顯式初始化,只要為一個類定義了類變數或例項變數,系統就會在這個類的準備階段或建立該類的例項時進行預設初始化。

區域性變數除形參之外,都必須顯式初始化。也就是說,必須先給方法區域性變數和程式碼塊區域性變數指定初始值,否則不可以訪問它們。

當系統載入類或建立該類的例項時,系統自動為成員變數分配記憶體空間,並在分配記憶體空間後,自動為成員變數指定初始值。

區域性變數定義後,必須經過顯式初始化後才能使用,系統不會為區域性變數執行初始化。

這意味著定義區域性變數後,系統並未為這個變數分配記憶體空間,直到等到程式為這個變數賦初始值時,系統才會為區域性變數分配記憶體,並將初始值儲存到這塊記憶體中。

與成員變數不同,區域性變數不屬於任何類或例項,因此它總是儲存在其所在方法的棧記憶體中。

如果區域性變數是基本型別的變數,則直接把這個變數的值儲存在該變數對應的記憶體中;

如果區域性變數是一個引用型別的變數,則這個變數裡存放的是地址,通過該地址引用到該變數實際引用的物件或陣列。

棧記憶體中的變數無須系統垃圾回收,往往隨方法或程式碼塊的執行結束而結束。