更新時間:2020-07-08 15:53:39 來源:動力節點 瀏覽2219次
變量的作用域
規定了變量所能使用的范圍,只有在作用域范圍內變量才能被使用。根據變量聲明地點的不同,變量的作用域也不同。
根據作用域的不同,一般將變量分為不同的類型:類變量、局部變量、方法參數變量及異常處理參數變量。下面對這幾種變量進行詳細說明。
類變量
類變量也稱為成員變量,聲明在類中,不屬于任何一個方法,作用域是整個類。
例1:假設在一個類中聲明了3個變量,下面編寫一個測試類輸出引起變量的值改變的示例代碼。變量聲明,實現代碼如下所示:
public?class?DataClass
{
int?price=100;?//定義類變量?price
price?String?name;?//定義類變量?name
name?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);
}
}
運行結果如下:
name=null
num=0
price=100
在第一段代碼中3個成員變量,并對其中第一個變量price進行了初始化,而第二個name變量和第三個變量num沒有進行初始化。由輸出結果可以看出,第一個變量的值為顯示初始化的值,第二個和第三個變量的值則為系統默認初始化的值。
局部變量
局部變量是指在方法或者方法代碼塊中定義的變量,其作用域是其所在的代碼塊。
例2:聲明兩個局部變量并輸出其值,實現代碼如下:
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語句的代碼塊內,運行結果如下:
s=3
a=7
a=7
方法參數變量
作為方法參數聲明的變量的作用域是整個方法。
例3:聲明一個方法參數變量,實現代碼如下:
public?class?Test3
{
public?static?void?testFun(int?n)
{
System.out.println("n="+n);
}
public?static?void?main(String[]?args)
{
testFun(B);
}
}
在上例中定義了一個testFun()方法,該方法中包含一個int類型的參數變量n,其作用域是testFun()方法體內。當調用方法時傳遞進了一個參數3,因此其輸出控制臺的n值是3。
異常處理參數變量
異常處理參數變量的作用域是在異常處理塊中,該變量是將異常處理參數傳遞給異常處理塊,與方法參數變量類似。
例4:聲明一個異常處理語句,實現代碼如下:
public?class?Test4
{
public?static?void?test()
{
try
{
System.out.println("Hello!Exception!");
}
catch(Exception?e)
{?//異常處理塊,參數為?Exception?類型
e.printStackTrace();
}
}
public?static?void?main(String[]?args)
{
test();
}
}
在上例中定義了異常處理語句,異常處理塊catch的參數為Exception類型的變量e,作用域是整個catch塊。
以上就是動力節點java培訓機構的小編針對“編程基礎內容分享,Java變量的作用域”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習