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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 張帅 中级黑马   /  2013-9-29 11:24  /  1075 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 張帅 于 2013-9-29 20:04 编辑

class Demo
{  
          public void function()
          {
                  //位置1;
          }
        class Inner{}
      public static void main(String[] args)
   {
                  Demo d = new Demo();
                //位置2;
   }
}

我再位置1的地方 new Inner();编译可以通过,但是在主函数的位置2出new Inner();就不行,同new Demo.Inner();也是,为什么,假如想在位置2处用上边两种语句格式应该怎样写?

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

1 个回复

倒序浏览
new Inner():编译器会提示Demo的内部类不能这么访问,并且把访问的格式告诉了你。
new Demo.Inner():如果你吧Inner改为静态的,就可以这么写了,类名.内容,不就是调用类成员参数活方法吗。
可以这么写:new Demo().new Inner();通过外部类的实例去new 内部类

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马