问答详情
源自:7-8 Java 中的方法内部类

方法中内部类问题

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();爆红怎么回事? 大神帮看看

提问者:慕粉3653781 2016-07-23 18:32

个回答

  • Xonvi
    2016-07-23 18:58:48
    已采纳

     MInner mi=new MInner();

                mi.print();

    两句放在内部类的外面就可以了

  • Xonvi
    2016-07-23 19:13:49

    方法内部类是通过在外部类的方法内实例化内部类,而不是在内部类里面实例化,因为外部要访问方法内部类的信息,必须要通过包裹内部类的方法,而在该方法中访问内部类也只有通过内部类的引用来访问内部类的信息,你在内部内中引用就相当于让内部类中的信息与外部隔绝了

  • 慕数据4511925
    2016-07-23 19:05:46

    方法内部类中不可以使用修饰符的。

     public void print(){

                    System.out.println("访问外部类的方法中的常量a:"+a);

                    System.out.println("访问内部类中的变量c:"+c);

                }

    你应该去掉print()方法前的修饰符public

  • shawnto
    2016-07-23 19:01:29

    class MInner{

            int c=2;

                public void print(){

                    System.out.println("访问外部类的方法中的常量a:"+a);

                    System.out.println("访问内部类中的变量c:"+c);

                }            

            }

            MInner mi=new MInner();

            mi.print();

    对象的创建应该在类的声明结束之后