开发者社区 问答 正文

java内部类实例化错误

请帮我看看下面出错的原因是什么?
为什么静态方法里不能直接调用内部类,成员方法却可以?

class Quetion1 {
 class ATM {
 int myMoney = 100;
 int viewMoney(){
 return myMoney;
 }
 void outMoney(int money){
 myMoney=myMoney-money;
 }
 }
 public void m1(){
     ATM atm=new ATM();
 }
 public static void main (String args){
      **ATM atm=new ATM();** 
     Runnable runA=new Runnable(){
            @Override
            public void run() {
                // TODO Auto-generated method stub

            }};
     Thread ThreadA=new Thread();
     Thread ThreadB=new Thread();
 }
}

展开
收起
蛮大人123 2016-02-19 15:02:15 2632 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    静态方法内不能直接创建内部类,静态方法是直接跟外部类绑定的。而内部类类似于一个成员变量,需要用外部类来调用。所以需要new Question1().new ATM();
    如果你的内部类是静态内部类,就直接可以在静态方法里面new了。

    2019-07-17 18:44:45
    赞同 展开评论
问答分类:
问答地址: