古詩詞大全網 - 成語經典 - java什麽是成員變量和局部變量

java什麽是成員變量和局部變量

本文介紹成員變量和局部變量的區別

1、成員變量是獨立於方法外的變量,局部變量是類的方法中的變量

1)、成員變量:包括實例變量和類變量,用static修飾的是類變量,不用static修飾的是實例變量,所有類的成員變量可以通過this來引用。

2)、局部變量:包括形參,方法局部變量,代碼塊局部變量,存在於方法的參數列表和方法定義中以及代碼塊中。

2、成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及 static修飾;兩者都可以定義成final型。

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

4、局部變量的生存周期與方法的執行期相同。當方法執行到定義局部變量的語句時,局部變量被創建;執行到它所在的作用域的最後壹條語句時,局部變量被銷毀。類的成員變量,如果是實例成員變量,它和對象的生存期相同。而靜態成員變量的生存期是整個程序運行期。

5、成員變量在累加載或實例被創建時,系統自動分配內存空間,並在分配空間後自動為成員變量指定初始化值,初始化值為默認值,基本類型的默認值為0,復合類型的默認值為null。(被final修飾且沒有static的必須顯式賦值),局部變量在定義後必須經過顯式初始化後才能使用,系統不會為局部變量執行初始化。

6、局部變量可以和成員變量 同名,且在使用時,局部變量具有更高的優先級,直接使用同名訪問,訪問的是局部變量,如需要訪問成員變量可以用this.變量名訪問