全局變量:也叫成員變量,是指在類中定義的變量;它在整個類中都有效
全局變量又可分為:類變量和實例變量
1.類變量:又叫靜態變量 用static修飾 它可以直接用類名調用 也可以用對象調用 而且所有對象的同一個類變量都是共享同
一塊內存空間的
2.實例變量:不用static修飾 它只能通過對象調用 而且所有對象的同一個實例變量是共享不同的內存空間的
局部變量:是指那些在方法體中定義的變量以及方法的參數 它只在定義它的方法內有效
注意:如果某個方法中的局部變量的名字與全局變量的名字相同 則該全局變量在這個方法中暫時失效
public class Test{
int a=0; //全局變量
public static void main(String[] args){
int b =0;//局部變量
}
}
先看下面兩段程序: 程序一: 程序二: ---------------------------------------------------------------------------------------------------------- 第一個程序很正常,編譯時不會出錯。第二個程序編譯時會提示如下錯誤: D:\Program\java\test>javac Variable.java 之所以會出現這樣的錯誤是因為:成員變量有默認值,(被final修飾且沒有static的必須顯式賦值),局部變量不會自動賦值 =========================================================== 類體分為兩部分。變量定義部分所定義的變量被稱為類的成員變量,在方法體中定義的變量和方法的參數都被稱為局部變量 java中成員變量和局部變量的區別
1.成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及static修飾;兩者都可以定義成final型
2.成員變量存儲在堆,局部變量存儲在棧
3.存在時間不同
4.成員變量有默認值,(被final修飾且沒有static的必須顯式賦值),局部變量不會自動賦值
-------------------------------------------------------------------------------------------------------------
顧名思意了
什么是局部,方法內部,塊內部都是局部,執行指令退出那個局部,局部變量自動清除 比如方法中,不用說 塊中 { int i=0; //這是一個局部變量,它的作用范圍就在其中 } 成員變量就會涉及到誰的成員,類的成員?實例的成員? class A{ int i=0; //實例的成員 static j=1;//類的成員 } static 的差別,是否依賴於實例而存在 ---------------------------------------------------------------------------------------------------------- 成員變量:作為類的成員而存在,直接存在於類中。 局部變量:作為方法或語句塊的成員而存在,存在於方法的參數列表和方法定義中。 局部變量在使用前必須被程序員主動的初始化,和此形成對比,系統中的成員變量則會被系統提供一個默認的初始值。所以在語法上,類的成員變量能夠定義后直接使用,而局部變量在定義后先要賦初值,然后才能使用。
所有類的成員變量可以通過this來引用。成員變量又分成倆中類型:實例變量和靜態變量。靜態變量在定義時要使用static關鍵字 |