A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘永贵 中级黑马   /  2013-6-14 17:57  /  833 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  编写了一串代码,但不知哪出错了,求大家指教一下
        class Other {
             public int i ;
         }
        class Something  {
             public static void main(String[]  args)  {
                 Other o = new Other();
                  new Something().addOne(o);
          }

        public void addOne (final Other o)   {
             o.i++;
             o=new Other();
         }
}

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
public static void main(String[] args) {
                Other o = new Other();
                new FanShe().addOne(o);
        }

        public void addOne(Other o) {
                o.i++;
                o = new Other();
        }
       
        static class Other {
                public int i;
        }
回复 使用道具 举报
因为你是在main方法中调用内部类那么内部类就一定要是静态的,还有你的传的参数是final无法修改的,然后你有new一个新的内部类,当然是不可以的了
回复 使用道具 举报
不过你也把你在main方法中实例的内部类提炼出来放到普通的方法中,因为你的内部类是基于外部类的,你连外部类度没有实例出来,有怎么可能让编译器给你实例内部类呢,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马