方法中内部类问题

来源:7-8 Java 中的方法内部类

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

写回答 关注

4回答

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

     MInner mi=new MInner();

                mi.print();

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

    慕粉3653...

    非常感谢!

    2016-07-23 19:02:15

    共 1 条回复 >

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

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

    慕粉3653... 回复Xonvi

    嗯 好的 非常感谢 !

    2016-07-23 20:43:01

    共 3 条回复 >

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

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

     public void print(){

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

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

                }

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

    慕粉3653...

    方法内部类不能使用访问控制符和 static 修饰符。没说不能使用修饰符public,我看老师给的例子也是这样用的

    2016-07-23 19:09:36

    共 1 条回复 >

  • 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();

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

    慕粉3653...

    非常感谢

    2016-07-23 19:04:00

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530715 学习 · 6091 问题

查看课程

相似问题