为了账号安全,请及时绑定邮箱和手机立即绑定

方法中内部类问题

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 回答

 MInner mi=new MInner();

            mi.print();

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

0 回复 有任何疑惑可以回复我~
#1

慕粉3653781 提问者

非常感谢!
2016-07-23 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~
#1

慕粉3653781 提问者

非常感谢,内部public 修饰符没问题吧?
2016-07-23 回复 有任何疑惑可以回复我~
#2

慕粉3653781 提问者 回复 Xonvi

嗯 好的 非常感谢 !
2016-07-23 回复 有任何疑惑可以回复我~

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

 public void print(){

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

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

            }

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

0 回复 有任何疑惑可以回复我~
#1

慕粉3653781 提问者

方法内部类不能使用访问控制符和 static 修饰符。没说不能使用修饰符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();

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

1 回复 有任何疑惑可以回复我~
#1

慕粉3653781 提问者

非常感谢
2016-07-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

方法中内部类问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信