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

2021-07-03 23:12:32 字數 719 閱讀 3445

成員變數:包括例項變數和類變數,用static修飾的是類變數,不用static修飾的是例項變數,所有類的成員變數可以通過this來引用。

區域性變數:包括形參,方法區域性變數,**塊區域性變數,存在於方法的引數列表和方法定義中以及**塊中。

1.成員變數可以被public,protect,private,static等修飾符修飾,而區域性變數不能被控制修飾符及 static修飾;兩者都可以定義成final型。

2.成員變數儲存在堆,區域性變數儲存在棧。區域性變數的作用域僅限於定義它的方法,在該方法的外部無法訪問它。成員變數的作用域在整個類內部都是可見的,所有成員方法都可以使用它。如果訪問許可權允許,還可以在類的外部使用成員變數。

3.區域性變數的生存週期與方法的執行期相同。當方法執行到定義區域性變數的語句時,區域性變數被建立;執行到它所在的作用域的最後一條語句時,區域性變數被銷毀。類的成員變數,如果是例項成員變數,它和物件的生存期相同。而靜態成員變數的生存期是整個程式執行期。

4.成員變數在累載入或例項被建立時,系統自動分配記憶體空間,並在分配空間後自動為成員變數指定初始化值,初始化值為預設值,基本型別的預設值為0,復合型別的預設值為null。(被final修飾且沒有static的必須顯式賦值),區域性變數在定義後必須經過顯式初始化後才能使用,系統不會為區域性變數執行初始化。

5.區域性變數可以和成員變數 同名,且在使用時,區域性變數具有更高的優先順序,直接使用同名訪問,訪問的是區域性變數,如需要訪問成員變數可以用this.變數名訪問

Java 成員變數和區域性變數

成員變數 在類範圍裡定義的變數。成員變數又分為例項屬性 不用static 修飾 和類屬性 用static 修飾 類屬性和例項屬性統稱為成員變數。類屬性在類的準備階段開始存在,直到系統銷毀這個類,類屬性與類的生存範圍相同。例項屬性從類的例項被建立開始存在,直到系統銷毀這個例項,例項屬性與對應例項生存範...

java的成員變數和區域性變數!

首先說下變數 1 成員變數 變數定義部分所定義的變數被稱為類的成員變數。也就是說成員變數在整個類中都有效,類中的方法可以直接呼叫成員變數使用。然而成員變數又分為例項成員變數 簡稱例項變數 和類變數 簡稱靜態變數 1.1 例項變數 就是我們正常定義的變數,比如int a a就是例項變數 1.2 靜態變...

成員變數和區域性變數

定義類其實就是在定義類中的成員 成員 成員變數 屬性,成員函式 行為 成員變數和區域性變數的區別 1.成員變數定義在類中,整個類中都可以訪問 區域性變數定義在函式 語句 區域性 塊中,只在所屬的區域有效 2.成員變數存在於堆記憶體的物件中。區域性變數存在於棧記憶體的方法中。3.存活時間不同 成員變數...