Java成員變數是在類中定義的變數,用於描述類本身所具有的一些屬性。它們與局部變數不同,局部變數是在方法中定義的變數,用於輔助實現方法中的相關操作。成員變數和局部變數的主要區別包括:
所在位置:成員變數屬於每個類,在方法的外部,描述類的屬性。局部變數在每個方法內部使用,出了方法不可用。
作用範圍:成員變數作用於每個類。局部變數作用在方法內部。
默認值:成員變數系統會根據該變數的類型賦予其相應的特徵值,不手動賦值,也不會報錯。局部變數聲明之後系統不會賦予默認值,必須自己手動賦值,否則會報錯。
所在記憶體位置:成員變數是在對象創建以後存在於堆中,對象回收時,成員變數消失。局部變數是在方法被調用時存在於棧中,方法調執行結束,從棧中清除。
生命周期:成員變數隨對象的創建而創建,對象回收時,成員變數消失。局部變數的生命周期從聲明開始,到方法、代碼塊或構造函式執行完畢結束。
當子類和父類中出現一樣的屬性時,子類類型的對象調用該屬性,值是子類的屬性值。如果想要調用父類中的屬性值,需要使用一個關鍵字:super。This代表是本類類型的對象引用,而super代表是子類所屬的父類中的記憶體空間引用。