慕粉3653781
2016-07-23 18:32
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();爆红怎么回事? 大神帮看看
MInner mi=new MInner();
mi.print();
两句放在内部类的外面就可以了
方法内部类是通过在外部类的方法内实例化内部类,而不是在内部类里面实例化,因为外部要访问方法内部类的信息,必须要通过包裹内部类的方法,而在该方法中访问内部类也只有通过内部类的引用来访问内部类的信息,你在内部内中引用就相当于让内部类中的信息与外部隔绝了
方法内部类中不可以使用修饰符的。
public void print(){
System.out.println("访问外部类的方法中的常量a:"+a);
System.out.println("访问内部类中的变量c:"+c);
}
你应该去掉print()方法前的修饰符public
class MInner{
int c=2;
public void print(){
System.out.println("访问外部类的方法中的常量a:"+a);
System.out.println("访问内部类中的变量c:"+c);
}
}
MInner mi=new MInner();
mi.print();
对象的创建应该在类的声明结束之后
Java入门第二季 升级版
530715 学习 · 6091 问题
相似问题