亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于實例中創建非靜態內部類對象的問題

示例代碼中創建非靜態內部類的對象是這樣創建的

Outer?o=new?Outer();
Inner?i=o.new?Inner();

這里怎么能夠直接使用Inner i聲明,難道不應該是

Outer?o=new?Outer();
o.Inner?i=o.new?Inner();

這樣才對嗎?main是一個靜態方法怎么能夠直接訪問非靜態成員內部類?

正在回答

1 回答

因為是在本類的main方法中創建的內部類對象所以示例中省略了一點東西 有點誤導性

如果是單獨開個測試類中來創建非靜態的內部類的對象應該是這樣

Outer o=new Outer();

Outer.Inner in=o.new Inner();

也可以結合起來直接這樣寫

Outer.Inner in = new Outer().new Inner();

單獨說一下 這里這樣寫Outer.Inner in=o.new Inner();用的Outer.Inner 而不是o.Inner的原因是內部類其實也是一個類文件 只不過內部類的文件名 其實是外部類.內部類.class

所以你在創建他對象的時候得寫出他的類名全稱即Outer.Inner

2 回復 有任何疑惑可以回復我~
#1

double_kill 提問者

懂了,非常感謝!講的很細致。
2015-11-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于實例中創建非靜態內部類對象的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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