对main方法而言,虽然写在类中,它是游离于任何类之外的,因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问 。

1:非静态内部类,必须有一个外部类的引用才能创建。

2:在外部类的非静态方法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类。

3:在外部类的静态方法中,因为没有this,所以必须先获得外部类引用,然后创建非静态内部类。

4:静态内部类,不需要外部类引用就可以直接创建。

5:同时静态的内部类,也不能直接访问外部类的非静态方法。

6:由此可以推测,非静态内部类之所以可以直接访问外部类的方法,是因为创建非静态内部类时,有一个隐含的外部类引用被传递进来。

public class OuterClass { 

    public static void main(String[] args) { 

        OuterClass outerClass = new OuterClass(); 

        InnerClass innerClass = outerClass.new InnerClass(); 

        StaticInnerClass staticInnerClass = new StaticInnerClass(); 

    } 

    public void foo() { 

        InnerClass innerClass = new InnerClass(); 

        StaticInnerClass staticInnerClass = new StaticInnerClass(); 

    } 

    public class InnerClass { 

    } 

    public static class StaticInnerClass { 

    } 

}

最新文章

  1. Linux pthread
  2. 如何查看distirbution agent的执行进度
  3. 个人分享:平时开发中感觉几款不错 IDE 、插件、工具
  4. PAT 字符串-02 删除字符串中的子串
  5. AndroidManifest.xml 文件里面的内容介绍
  6. 织梦dedecms|文章模型内容页标签
  7. android app崩溃日志收集以及上传
  8. 织梦dedecms后台发布文章提示“标题不能为空”
  9. Python random() 函数
  10. Nginx从入门到实践(一)
  11. 18、实现strStr()
  12. Repeater 控件的嵌套使用
  13. 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial
  14. 【前端安全】JavaScript防流量劫持
  15. UGUI 判断元素进入舞台
  16. (win10)Wamp环境下php升级至PHP7.2
  17. jar 命令详解
  18. Linux查看进程,端口,访问url
  19. Ubuntu16.04安装搜狗拼音输入法
  20. 红黑树:个人理解与Python实现

热门文章

  1. Oracle死锁查询及处理
  2. mui禁止滚动条和禁止滚动
  3. AngularJs 时间格式化处理
  4. ONS C++ Windows SDK 调试方法及注意事项
  5. Kali linux渗透测试常用工具汇总2-渗透攻击
  6. vpn+路由表,最大限度提高上网速度
  7. header
  8. (原创)mybatis学习四,利用mybatis自动创建代码
  9. 001淘淘商城项目:项目的Maven工程搭建
  10. Ztree 随笔记