❶ 什麼是java的局部變數,成員變數,全局變數
publicclassTest{
privateStringname;//成員變數,也是全局變數
publicvoidchangeName(){
Stringn="tomoya";//n就是局部變數
name=n;
}
}
總的來說,定義在類里的,也就是name那個位置,就是成員變數,在JAVA里全局變數和成員變數是一個意思。
定義在方法里或域里就叫做局部變數,所謂域就是{}裡面,比如
publicvoidshow(){
intb=2;//局部變數
if(true){
inta=1;//局部變數
}
//這個位置訪問a,無效
}
//這個位置,或其他方法里訪問b,無效
他的作用范圍:
局部變數離開了他的域{}就無效
成員變數的范圍依賴他的訪問修飾符,什麼是訪問修飾符呢?
public
protected
private
默認,你定義時不給他訪問修飾符就是默認
至於他們的范圍,請自行查資料,不動腦筋是不行滴
這種東西確實如1L所說的,再爛的書也會有介紹
❷ java中成員變數和局部變數的區別
成員變數:
1、成員變數定義在類中,在整個類中都可以被訪問。
2、成員變數隨著對象的建立而建立,隨著對象的消失而消失,存在於對象所在的堆內存中。
3、成員變數有默認初始化值。
局部變數:
1、局部變數只定義在局部范圍內,如:函數內,語句內等,只在所屬的區域有效。
2、局部變數存在於棧內存中,作用的范圍結束,變數空間會自動釋放。
3、局部變數沒有默認初始化值
在使用變數時需要遵循的原則為:就近原則
首先在局部范圍找,有就使用;接著在成員位置找。
❸ 成員變數與局部變數
從語法形式上看:成員變數是屬於類的,而局部變數是在方法中定義的變數或是方法的參數;成員變數可以被 public,private,static 等修飾符所修飾,而局部變數不能被訪問控制修飾符及 static 所修飾;但是,成員變數和局部變數都能被 final 所修飾。從變數在內存中的存儲方式來看:如果成員變數是使用static修飾的,那麼這個成員變數是屬於類的,如果沒有使用static修飾,這個成員變數是屬於實例的。而對象存在於堆內存,局部變數則存在於棧內存。
從變數在內存中的生存時間上看:成員變數是對象的一部分,它隨著對象的創建而存在,而局部變數隨著方法的調用而自動消失。成員變數如果沒有被賦初值:則會自動以類型的默認值而賦值(一種情況例外:被 final 修飾的成員變數也必須顯式地賦值),而局部變數則不會自動賦值。
❹ java什麼是成員變數和局部變數
本文介紹成員變數和局部變數的區別
1、成員變數是獨立於方法外的變數,局部變數是類的方法中的變數
1)、成員變數:包括實例變數和類變數,用static修飾的是類變數,不用static修飾的是實例變數,所有類的成員變數可以通過this來引用。
2)、局部變數:包括形參,方法局部變數,代碼塊局部變數,存在於方法的參數列表和方法定義中以及代碼塊中。
2、成員變數可以被public,protect,private,static等修飾符修飾,而局部變數不能被控制修飾符及 static修飾;兩者都可以定義成final型。
3、成員變數存儲在堆,局部變數存儲在棧。局部變數的作用域僅限於定義它的方法,在該方法的外部無法訪問它。成員變數的作用域在整個類內部都是可見的,所有成員方法都可以使用它。如果訪問許可權允許,還可以在類的外部使用成員變數。
4、局部變數的生存周期與方法的執行期相同。當方法執行到定義局部變數的語句時,局部變數被創建;執行到它所在的作用域的最後一條語句時,局部變數被銷毀。類的成員變數,如果是實例成員變數,它和對象的生存期相同。而靜態成員變數的生存期是整個程序運行期。
5、成員變數在累載入或實例被創建時,系統自動分配內存空間,並在分配空間後自動為成員變數指定初始化值,初始化值為默認值,基本類型的默認值為0,復合類型的默認值為null。(被final修飾且沒有static的必須顯式賦值),局部變數在定義後必須經過顯式初始化後才能使用,系統不會為局部變數執行初始化。
6、局部變數可以和成員變數 同名,且在使用時,局部變數具有更高的優先順序,直接使用同名訪問,訪問的是局部變數,如需要訪問成員變數可以用this.變數名訪問
頂
❺ JAVA中局部變數和成員變數的區別
根據定義變數位置的不同,可以將變數分為成員變數和局部變數
成員變數是回在類范圍內定義的變數
局部變答量是在一個方法內定義的變數
成員變數可以分為:
實例屬性 (不用static修飾):隨著實例屬性的存在而存在
類屬性 (static修飾):隨著類的存在而存在
成員變數無需顯式初始化,系統會自動對其進行默認初始化
局部變數可分為:
形參(形式參數): 在整個方法內有效
方法局部變數 (方法內定義):從定義這個變數開始到方法結束這一段時間內有效
代碼塊局部變數 (代碼塊內定義):從定義這個變數開始到代碼塊結束這一段時間內有效
局部變數除了形參外,都必須顯示初始化,也就是要指定一個初始值,否則不能訪問。
還有,在內存中的位置也不一樣。成員變數在所在類被實例化後,存在堆內存中;局部變數在所在方法調用時,存在棧內存空間中。