成員變數和區域性變數的區別

2022-08-10 03:54:10 字數 558 閱讀 4005

在實體類中只有屬性和方法

區別一:定義的位置

首先在定義類中的變數是成員變數

定義方法種的是區域性變數

區別二:在記憶體中的位置不同

成員變數儲存在堆記憶體的物件中

區域性變數儲存在棧記憶體的方法中

區別三:生命週期不同(什麼時候建立,什麼時候銷毀!)

成員變數隨著物件的出現而出現在堆中,隨著物件的消失而從堆中消失(gc垃圾**機制)

區域性變數隨著方法的執行而出現在棧中,隨著方法的彈棧而消失

區別四:初始化不同

成員變數因為在堆記憶體中,所有預設的初始化值

區域性變數沒有預設的初始化值,必須手動的給其賦值才可以使用。

例子:

class person

public void sleep()

}

存在某個類中的並且類方法外就叫成員變數。成員變數可以在類中的任何地方訪問

區域性變數和成員變數的名字可以重名  採用就近原則

class person

public void sleep()

}

成員變數和區域性變數區別

變數根據定義位置的不同,我們給變數起了不同的名字。如下圖所示 在類中的位置不同 重點 成員變數 類中,方法外 區域性變數 方法中或者方法宣告上 形式引數 作用範圍不一樣 重點 成員變數 類中 區域性變數 方法中 初始化值的不同 重點 成員變數 有預設值 區域性變數 沒有預設值。必須先定義,賦值,最後...

成員變數和區域性變數區別

成員變數 直接宣告在類內部的變數稱為成員變數 member variables 宣告成員變數的語法格式 修飾符 資料型別 變數名 值 public static final double pi 3.14 區域性變數 只能宣告在方法 包括形參列表 或者程式塊中 使用前,必須顯式地為區域性變數初始化 不...

成員變數和區域性變數的區別

成員變數和區域性變數的區別?1.類中的位置不同 成員變數 在類中方法外 區域性變數 在方法中定義或者在方法宣告上 2.記憶體中的位置不同 成員變數 在堆記憶體中 區域性變數 在棧記憶體中 3.命週期不同 成員變數 隨著物件的建立而存在,隨著物件的消失而消失 區域性變數 隨著方法的呼叫而存在,隨著方法...