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

2021-09-28 11:09:11 字數 985 閱讀 3510

成員變數:

①成員變數定義在類中,在整個類中都可以被訪問。

②成員變數隨著物件的建立而建立,隨著物件的消失而消失,存在於物件所在的堆記憶體中。

③成員變數有預設初始化值。

區域性變數:

①區域性變數只定義在區域性範圍內,如:函式內,語句內等,只在所屬的區域有效。

②區域性變數存在於棧記憶體中,作用的範圍結束,變數空間會自動釋放。

③區域性變數沒有預設初始化值 

在使用變數時需要遵循的原則為:就近原則

首先在區域性範圍找,有就使用;接著在成員位置找。

1、兩個變數的生命週期不同

成員變數隨著物件的建立而存在,隨著物件被**而釋放。

靜態變數隨著類的載入而存在,隨著類的消失而消失。

2、呼叫方式不同

成員變數只能被物件呼叫。

靜態變數可以被物件呼叫,還可以被類名呼叫。

3、別名不同

成員變數也稱為例項變數。

靜態變數也稱為類變數。

4、資料儲存位置不同

成員變數儲存在堆記憶體的物件中,所以也叫物件的特有資料。

靜態變數資料儲存在方法區(共享資料區)的靜態區,所以也叫物件的共享資料。

成員變數、區域性變數、靜態變數的區別 

成員變數

區域性變數

靜態變數

定義位置

在類中 , 方法外

方法中 , 或者方法的形式引數

在類中 , 方法外

初始化值

有預設初始化值

無 , 先定義 , 賦值後才能使用

有預設初始化值

呼叫方式

物件呼叫

物件呼叫,類名呼叫

儲存位置

堆中棧中

方法區生命週期

與物件共存亡

與方法共存亡

與類共存亡

別名例項變數

類變數

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

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

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

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

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

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