卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

引用傳遞和值傳遞的區(qū)別 匿名內(nèi)部類訪問(wèn)局部變量為什么final?

匿名內(nèi)部類訪問(wèn)局部變量為什么final?保證局部變量在匿名內(nèi)部類內(nèi)外都不會(huì)被修改。因?yàn)槟涿麅?nèi)部類內(nèi)部,實(shí)際上是復(fù)制了一份局部變量,然后在匿名內(nèi)部類中使用。如果不設(shè)置為final,局部變量在外部被修改,

匿名內(nèi)部類訪問(wèn)局部變量為什么final?

保證局部變量在匿名內(nèi)部類內(nèi)外都不會(huì)被修改。因?yàn)槟涿麅?nèi)部類內(nèi)部,實(shí)際上是復(fù)制了一份局部變量,然后在匿名內(nèi)部類中使用。如果不設(shè)置為final,局部變量在外部被修改,會(huì)導(dǎo)致與匿名內(nèi)部類之內(nèi)的副本不一致,邏輯上說(shuō)不通。所以Java虛擬機(jī)這么設(shè)計(jì),強(qiáng)制設(shè)置局部變量為final,語(yǔ)義上保持一致性。

匿名內(nèi)部類訪問(wèn)局部變量,為什么final?

是變量的作用域的問(wèn)題,因?yàn)槟涿麅?nèi)部類是出現(xiàn)在一個(gè)方法的內(nèi)部的,如果它要訪問(wèn)這個(gè)方法的參數(shù)或者方法中定義的變量,則這些參數(shù)和變量必須被修飾為final。

因?yàn)殡m然匿名內(nèi)部類在方法的內(nèi)部,但實(shí)際編譯的時(shí)候,內(nèi)部類編譯成Outer.Inner,這說(shuō)明內(nèi)部類所處的位置和外部類中的方法處在同一個(gè)等級(jí)上,外部類中的方法中的變量或參數(shù)只是方法的局部變量,這些變量或參數(shù)的作用域只在這個(gè)方法內(nèi)部有效。因?yàn)榫幾g的時(shí)候內(nèi)部類和方法在同一級(jí)別上,所以方法中的變量或參數(shù)只有為final,內(nèi)部類才可以引用。