成員變數與區域性變數的區別
阿新 • • 發佈:2022-05-09
(1)宣告的位置不同
成員變數:類中方法外
區域性變數:(1)方法的()中,即形參(2)方法體的{}的區域性變數(3)程式碼塊{}中
(2)儲存的位置不同
成員變數:
如果是靜態變數(類變數),在方法區中
如果是非靜態的變數(例項變數),在堆中
區域性變數:棧
(3)修飾符不同
成員變數:4種許可權修飾符、static等多種修飾符
區域性變數:不能有任何修飾符
(4)作用域
成員變數:
如果是靜態變數(類變數),在本類中隨便用,在其他類中使用“類名.靜態變數"
如果是非靜態的變數(例項變數),在本類中只能在非靜態成員中使用,在其他類中使用“物件名.非靜態的變數"
區域性變數:有作用域,出了作用域就不能使用
(5)生命週期
成員變數:
如果是靜態變數(類變數),和類相同,隨著類的載入而分配,隨著的類的解除安裝才消亡。
如果是非靜態的變數(例項變數),和所屬的物件相同,每一個物件是獨立。物件建立時,才在堆中分配記憶體,隨著物件被垃圾回收而消亡。
區域性變數:每次方法呼叫執行都是新的,而且僅在作用域範圍內有效。