最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java更新了嗎,現(xiàn)在局部內部類可以訪問非final的局部變量了嗎

java更新了嗎,現(xiàn)在局部內部類可以訪問非final的局部變量了嗎

qq_HkJxGnMdGm_0 2019-07-05 20:58:04
class Outer{ ????????int num=3; ????????void method() ????????{ ????????????????final int y=50; ????????????????class Inner ????????????????{ ?????????????????????????void show() ????????????????????????{ ????????????????????????????????System.out.println("show..."+y); ????????????????????????} ????????????????} ????????????????Inner in=new Inner(); ????????????????in.show(); ????????}}class InnerClassDemo3?{ ????????public static void main(String[] args)? ????????{ ????????????????new Outer().method(); ????????}}這段代碼中,原本應該報錯嗎?從內部類訪問局部變量,該局部變量需要是fianl類型?。繛槭裁次揖幾g就通過呢?我用的是EditPlusPortable
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

從你的另一個問題來看,你說的“需要是 final 類型”指的是?final?int?y = 50;?這句吧?

你是想問,這里直接寫?int?y = 50;?也可以正常編譯運行吧?

(雖然這里你寫了?final,不過你另一個問題的代碼中沒有寫)


我猜你用的是?JavaSE 8(或以上)的版本對吧?

在?JavaSE 8?版時增加了新規(guī)定,local?class?除了可以訪問?final?local?常量外,還可以訪問“事實常量”(effectively final,抱歉我不知道該翻譯成什么)。

所謂“事實常量”就是指“雖然沒有被聲明為?final,但是在定義后就沒有被更改的變量”。

顯然你這個代碼中的?y?就是事實常量。

查看完整回答
1 反對 回復 2019-07-06
  • qq_HkJxGnMdGm_0
    qq_HkJxGnMdGm_0
    非常感謝,因為,前一個問題沒有排版怕別人看起來不方便,就重新排版再次提問,結果卻忽略了final int y ,真是非常感謝,昨天思考了很久一直找不到問題所在,當時就感覺是軟件問題或jdk的問題。果然是這樣,真是非常感謝!
  • onemoo
    onemoo
    抱歉,大概你是我這兩天見到的為數(shù)不多的真人用戶,所以才發(fā)了前面那些吐槽...
  • qq_HkJxGnMdGm_0
    qq_HkJxGnMdGm_0
    沒關系的,不用抱歉。問答區(qū)不常來吧,一般都是遇到自己實在解決不了的問題就來問問
  • 1 回答
  • 0 關注
  • 988 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號