規定了變數所能使用的範圍,只有在作用域範圍內變數才能被使用。根據變數宣告地點的不同,變數的作用域也不同。
根據作用域的不同,一般將變數分為不同的型別:類變數、區域性變數、方法引數變數及異常處理引數變數。下面對這幾種變數進行詳細說明。
類變數也稱為成員變數,宣告在類中,不屬於任何乙個方法,作用域是整個類。
例 1:假設在乙個類中宣告了 3 個變數,下面編寫乙個測試類輸出引起變數的值改變的示例**。變數宣告,實現**如下所示:
public class dataclass測試類**如下所示:
public class test}
執行結果如下:
name=nullnum=0
price=100
在第一段**中3 個成員變數,並對其中第乙個變數 price 進行了初始化,而第二個 name 變數和第三個變數 num 沒有進行初始化。由輸出結果可以看出,第乙個變數的值為顯示初始化的值,第二個和第三個變數的值則為系統預設初始化的值。
區域性變數是指在方法或者方法**塊中定義的變數,其作用域是其所在的**塊。
例 2:宣告兩個區域性變數並輸出其值,實現**如下:
public class test2system.out.println("a="+a);}}
上述例項中定義了 a 和 s 兩個區域性變數,其中int 型別的 a 的作用域是整個 main() 方法,而 int 型別的變數 s 的作用域是 if 語句的**塊內,執行結果如下:
s=3作為方法引數宣告的變數的作用域是整個方法。a=7a=7
例 3:宣告乙個方法引數變數,實現**如下:
public class test3在上例中定義了乙個 testfun() 方法,該方法中包含乙個 int 型別的引數變數 n,其作用域是 testfun() 方法體內。當呼叫方法時傳遞進了乙個引數 3,因此其輸出控制台的 n 值是 3。public static void main(string args)
}
異常處理引數變數的作用域是在異常處理塊中,該變數是將異常處理引數傳遞給異常處理塊,與方法引數變數類似。
例 4:宣告乙個異常處理語句,實現**如下:
public class test4在上例中定義了異常處理語句,異常處理塊 catch 的引數為 exception 型別的變數 e,作用域是整個 catch 塊。catch(exception e)
}public static void main(string args)
}
Java變數作用域
資料型別的 初始值byte 0short 0int 0long 0lchar u0000 float 0.0f double 0boolean false 所有引用型別 null 不引用任何物件 一.變數的作用域 全域性變數 區域性變數 根據作用域 作用範圍 來分,一般將變數分為全域性變數和區域性變...
Java變數作用域記憶體
我一直在想乙個問題,做迴圈的時候變數在迴圈體內定義省記憶體還是變數在迴圈體外定義省記憶體,於是做了下實驗 import junit.framework.testcase class holdmemory public class memorycase extends testcase system....
JAVA 變數作用域的問題
變數作用域的問題 public string getanswer catch exception e return myanswer 這個方法總是報錯,按以前的思路,myanawer應已賦值了,怎會是還沒賦值?原來,這就是變數的作用域的問題,我把它改為 public string getanswer...