點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門教程第三章匯總
3.5 變量的作用域
變量的作用域(scope)是指變量能夠被引用的區(qū)域,也就是可以使用該變量的程序范圍。截止到目前為止,我們?cè)诔绦蚶又新暶鞯淖兞慷急欢x在main( )方法內(nèi)。在一個(gè)方法內(nèi)聲明的變量被稱作局部變量(local variable),它們只能在聲明它們的方法中被訪問,但并不是在聲明它們的方法中的任何位置都可訪問。請(qǐng)看下面這個(gè)例子,它在方法中又內(nèi)嵌了一個(gè)塊。
int a=1; //Declear and define a
//Reference to a is ok here
//keference to b here is an error
{
//Reference to a here is ok
//Reference to b here is untill an error
int b=2; //Delear and define b
//Reference to a and b are Ok here -b exists new
}
//Reference to b is an error here here-it doesn't exist
//Reference to a is still ok though
一個(gè)變量在聲明前并不存在,只有被聲明后才可以對(duì)它進(jìn)行引用。在定義它的塊結(jié)束前一直存在,其中包括該塊內(nèi)嵌套的所有塊。變量b只能在最內(nèi)層的塊中存在。在最內(nèi)層的大括號(hào)之后,b就不存在了。而變量a在大括號(hào)結(jié)束前一直存在。
因此,局部變量的訪問規(guī)則很簡(jiǎn)單。它們可被訪問的范圍是:在程序中,從聲明它們的位置開始,到聲明它們的塊結(jié)束處。在聲明它們的塊結(jié)束之后,就不能再被訪問了。我們可以用下個(gè)例子演示它:
試試看--作用域。
我們將定義方法main()說明如何應(yīng)用變量作用域工作。首先,我們聲明并初始化變量outer,然后開始一個(gè)內(nèi)層塊。在該塊內(nèi),我們將定義一個(gè)變量inner.在塊結(jié)束之后,我們將再次聲明變量inner并再次使用它。
piblic class scope
{
syetem.out.println("inner *"+inner);//Uncooment this for an error 1 error
如何工作
在這個(gè)程序中的方法main()內(nèi)只嵌套了一個(gè)塊。變量outer在開始處就被定義,所以在方法main()的任何地方,包括嵌套的所有塊中都可以引用它。變量不能被重復(fù)聲明,若將注釋標(biāo)志刪除,在內(nèi)層塊中被注釋起來的變量outer的聲明語句就會(huì)導(dǎo)致編譯錯(cuò)誤。
變量inner在嵌套塊內(nèi)定義并被賦初始值2,從它的聲明處到內(nèi)層塊結(jié)束處,你都可以它進(jìn)行引用。在內(nèi)層塊結(jié)尾的大括號(hào)之后,變量inne:不再存在,所以被注釋起來的引用~的輸出語句是非法的。然而,因?yàn)樽兞縨tier己經(jīng)不存在,所以我們可以用同樣的名字聲明另一個(gè)變量并將它賦初值為3.
注意:所有這些都說明了局部變量的生存期。重新定義一個(gè)已經(jīng)不存在的變量并不是一個(gè)好的做法,因?yàn)檫@很容易引起混亂。雖然,我們?cè)谏鲜隼又袃H使用了int類型變量,但是變量的作用域規(guī)律對(duì)所有類型的變量來說都是一樣的。
有另一種被稱為類變量的變量,當(dāng)用一種特定的方法聲明它們時(shí),它們可以擁有很長(zhǎng)的生命期。例如,在標(biāo)準(zhǔn)的類Math中變量PI和E就是這種類型變量,只要你的程序處于運(yùn)行;它們就可被使用,還有另一種被稱為實(shí)例變量的變量,它是構(gòu)造類對(duì)象,我們將在第5章中進(jìn)一步學(xué)習(xí)這方面的內(nèi)容。
相關(guān)推薦:
2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門教程第一章匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |