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

为什么这样不行?用对象外部类调用外部类方法,结果无法执行到内部类方法?

ublic class HelloWorld 

{

    // 外部类中的show方法

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

            }

        }

    }

    public static void main(String[] args)

    {

        HelloWorld mo=new HelloWorld();

        mo.show();

    }

}


提问者:三水朝山 2016-05-04 15:21

个回答

  • 慕村5328463
    2016-05-04 15:46:29
    已采纳

    因为你在show()方法中没有调用内部类的print()方法;

    你可以在show()中生成一个内部类对象,用这个对象调用print()方法;

    如:

    MInner mi = new MInner();

            mi.print();


  • 慕粉3285133
    2016-05-04 16:18:07

    因为你这样子调用show方法,show方法里面根本就没做啥事,肯定是空白哦。

  • 宇宙千雪
    2016-05-04 15:49:53

    package sterning;
    
    public class HelloWorld 
    {
        // 外部类中的show方法
        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);
                }
            }
            System.out.println("Yes");
            MInner mi=new MInner();
            mi.print();
        }
        public static void main(String[] args)
        {
            HelloWorld mo=new HelloWorld();
            mo.show();
        }
    }


  • 慕粉3274195
    2016-05-04 15:48:42

    同楼上,要想调用内部类的方法,就一定要创建内部类的对象。

  • 相信着能
    2016-05-04 15:47:41

    MInner mi=new MInner();
    mi.print();

  • 慕标5176381
    2016-05-04 15:46:11

    因为没有new内部类的对象,只能执行到外部方法。

  • 慕粉3285133
    2016-05-04 15:41:31

    因为你在show方法中没有new出MInner对象,然后调用print()方法。所以才会报错。

    MInner mi=new MInner();
    mi.print();

    加上这个就好了