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

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

方法中內部類問題

package com.imooc;

public class Demo53 {

????public void show(){

????final int a=25;

????int b=13;

????????class MInner{

????????int c=2;

????????????public void print(){

????????????????System.out.println("訪問外部類的方法中的常量a:"+a);

????????????????System.out.println("訪問內部類中的變量c:"+c);

????????????}

????????????MInner mi=new MInner();

????????????mi.print();

????????}

????}

????public static void main(String[] args) {

????Demo53 mo=new Demo53();

????mo.show();

????}

}

mi.print();爆紅怎么回事? 大神幫看看

正在回答

4 回答

?MInner mi=new MInner();

????????????mi.print();

兩句放在內部類的外面就可以了

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

慕粉3653781 提問者

非常感謝!
2016-07-23 回復 有任何疑惑可以回復我~

方法內部類是通過在外部類的方法內實例化內部類,而不是在內部類里面實例化,因為外部要訪問方法內部類的信息,必須要通過包裹內部類的方法,而在該方法中訪問內部類也只有通過內部類的引用來訪問內部類的信息,你在內部內中引用就相當于讓內部類中的信息與外部隔絕了

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

慕粉3653781 提問者

非常感謝,內部public 修飾符沒問題吧?
2016-07-23 回復 有任何疑惑可以回復我~
#2

Xonvi 回復 慕粉3653781 提問者

沒問題的 可能你把這個概念搞混了,不能用訪問修飾符或者static修飾的是 MInner這個內部類,而不是內部類中的方法,你可以再內部類名字前加public 或者其他訪問修飾符 你會發現都會報錯
2016-07-23 回復 有任何疑惑可以回復我~
#3

慕粉3653781 提問者 回復 Xonvi

嗯 好的 非常感謝 !
2016-07-23 回復 有任何疑惑可以回復我~

方法內部類中不可以使用修飾符的。

?public void print(){

????????????????System.out.println("訪問外部類的方法中的常量a:"+a);

????????????????System.out.println("訪問內部類中的變量c:"+c);

????????????}

你應該去掉print()方法前的修飾符public

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

慕粉3653781 提問者

方法內部類不能使用訪問控制符和 static 修飾符。沒說不能使用修飾符public,我看老師給的例子也是這樣用的
2016-07-23 回復 有任何疑惑可以回復我~

class MInner{

? ? ? ? int c=2;

? ? ? ? ? ? public void print(){

? ? ? ? ? ? ? ? System.out.println("訪問外部類的方法中的常量a:"+a);

? ? ? ? ? ? ? ? System.out.println("訪問內部類中的變量c:"+c);

? ? ? ? ? ? } ? ? ? ? ? ?

? ? ? ? }

? ? ? ? MInner mi=new MInner();

? ? ? ? mi.print();

對象的創建應該在類的聲明結束之后

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

慕粉3653781 提問者

非常感謝
2016-07-23 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

方法中內部類問題

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

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

幫助反饋 APP下載

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

公眾號

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