方法中內部類問題
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();爆紅怎么回事? 大神幫看看
2016-07-23
?MInner mi=new MInner();
????????????mi.print();
兩句放在內部類的外面就可以了
2016-07-23
方法內部類是通過在外部類的方法內實例化內部類,而不是在內部類里面實例化,因為外部要訪問方法內部類的信息,必須要通過包裹內部類的方法,而在該方法中訪問內部類也只有通過內部類的引用來訪問內部類的信息,你在內部內中引用就相當于讓內部類中的信息與外部隔絕了
2016-07-23
方法內部類中不可以使用修飾符的。
?public void print(){
????????????????System.out.println("訪問外部類的方法中的常量a:"+a);
????????????????System.out.println("訪問內部類中的變量c:"+c);
????????????}
你應該去掉print()方法前的修飾符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();
對象的創建應該在類的聲明結束之后