變量的作用域
規(guī)定了變量所能使用的范圍,只有在作用域范圍內(nèi)變量才能被使用。根據(jù)變量聲明地點的不同,變量的作用域也不同。
根據(jù)作用域的不同,一般將變量分為不同的類型:類變量、局部變量、方法參數(shù)變量及異常處理參數(shù)變量。下面對這幾種變量進行詳細說明。
類變量
類變量也稱為成員變量,聲明在類中,不屬于任何一個方法,作用域是整個類。
例1:假設(shè)在一個類中聲明了3個變量,下面編寫一個測試類輸出引起變量的值改變的示例代碼。變量聲明,實現(xiàn)代碼如下所示:
public?class?DataClass{int?price=100;?//定義類變量?priceprice?String?name;?//定義類變量?namename?int?num;?//定義類變量?num}
測試類代碼如下所示:
public?class?Test{public?static?void?main(String[]?args){DataClass?dc=new?DataCLass();System.out.println("name="+dc.name);System.out.println("num="+dc.num);System.out.println("price="+dc.price);}}運行結(jié)果如下:name=nullnum=0price=100
在第一段代碼中3個成員變量,并對其中第一個變量price進行了初始化,而第二個name變量和第三個變量num沒有進行初始化。由輸出結(jié)果可以看出,第一個變量的值為顯示初始化的值,第二個和第三個變量的值則為系統(tǒng)默認初始化的值。
局部變量
局部變量是指在方法或者方法代碼塊中定義的變量,其作用域是其所在的代碼塊。
例2:聲明兩個局部變量并輸出其值,實現(xiàn)代碼如下:
public?class?Test2{public?static?void?main(String[]?args){int?a=7;if(5>3){int?s=3;?//聲明一個int類型的局部變量System.out.println("s="+s);System.out.println("a="+a);}System.out.println("a="+a);}}
上述實例中定義了a和s兩個局部變量,其中int類型的a的作用域是整個main()方法,而int類型的變量s的作用域是if語句的代碼塊內(nèi),運行結(jié)果如下:
s=3a=7a=7
方法參數(shù)變量
作為方法參數(shù)聲明的變量的作用域是整個方法。
例3:聲明一個方法參數(shù)變量,實現(xiàn)代碼如下:
public?class?Test3{public?static?void?testFun(int?n){System.out.println("n="+n);}public?static?void?main(String[]?args){testFun(B);}}
在上例中定義了一個testFun()方法,該方法中包含一個int類型的參數(shù)變量n,其作用域是testFun()方法體內(nèi)。當調(diào)用方法時傳遞進了一個參數(shù)3,因此其輸出控制臺的n值是3。
異常處理參數(shù)變量
異常處理參數(shù)變量的作用域是在異常處理塊中,該變量是將異常處理參數(shù)傳遞給異常處理塊,與方法參數(shù)變量類似。
例4:聲明一個異常處理語句,實現(xiàn)代碼如下:
public?class?Test4{public?static?void?test(){try{System.out.println("Hello!Exception!");}catch(Exception?e){?//異常處理塊,參數(shù)為?Exception?類型e.printStackTrace();}}public?static?void?main(String[]?args){test();}}
在上例中定義了異常處理語句,異常處理塊catch的參數(shù)為Exception類型的變量e,作用域是整個catch塊。
以上就是長沙一度軟件培訓(xùn)java培訓(xùn)機構(gòu)的小編針對“編程基礎(chǔ)內(nèi)容分享,Java變量的作用域”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。