黑马程序员: 关于内部类的一个思考
来源:互联网 发布:oracle数据库巡检模板 编辑:程序博客网 时间:2024/06/05 19:09
------- android培训 java培训 java学习型博客、期待与您交流 -------
对内部类的学习花了我不少时间, 我还彻底地将<Thinking in Java 4th edtion>的那个章节彻底地看完.
以下是我对内部类的一个本质理解.
文章不长, 但绝对是 干货.
---------------------------------------------------------
对于非静态内部类, 其对象的空间中, 保留了一个指向外部类对象的指针.----这个很重要哦!
即, 意味着, 要创建非静态的内部类, 必须要有外部类对象先!
但是, 仅仅从外部类对象的空间, 是无法知道是否用这个外部类对象创建过其内部类对象,
因为外部类的存储空间中没有相关的数据域指向对应的内部类对象的空间.
所以, 在外部类中, 我们不能直接访问内部类的成员;
而, 在内部类中, 我们却可以直接访问外部类的成员.
局部内部类(匿名内部类其实也是局部内部类的一种) 中, 我们可以直接访问其所在方法的局部变量.
----至于, 为什么这个局部变量要求是final我就不知道了.
但我知道, JDK1.8的新特性是, 其不要求这个局部变量必须是final的.-----JDK1.8的新特性!
对于 静态内部类. 由于它是静态的, 所以其不依赖于外部类对象.
注意, 静态内部类也是可以有非静态成员的, 因此对静态内部类进行实例化也是有意义的,
但这个实例化不依赖于外部类对象(因为静态内部类是外部类的静态成员).
即, 在静态内部类的对象的存储空间中, 没有指向外部类对象的域.----很重要哦!
所以, 在静态内部类中, 不能直接访问外部类的非静态成员, 而只能访问外部类的静态成员.
而外部类 能访问静态内部类的静态成员, 但是不能直接访问静态内部类的非静态成员.
------- android培训 java培训 java学习型博客、期待与您交流 -------
- 黑马程序员: 关于内部类的一个思考
- 黑马程序员--关于内部类的笔记总结
- 黑马程序员 关于内部类的一些知识总结
- 黑马程序员—关于Java中的内部类的笔记
- 黑马程序员 第三篇:关于内部类
- 黑马程序员---关于Java中的内部类
- 黑马程序员---内部类
- 黑马程序员-内部类
- 黑马程序员-内部类
- 黑马程序员-内部类
- 黑马程序员-内部类
- 黑马程序员-内部类
- 黑马程序员--内部类
- 黑马程序员--内部类
- 黑马程序员--内部类
- <<内部类>>--黑马程序员
- 黑马程序员--内部类
- 黑马程序员-内部类
- web前台获取服务器端时间
- js数组操作
- 接口表开发AR
- switch判断语句!
- asp.net 自定义 Http Post,Get,WebClient ,TcpClient 请求url地址
- 黑马程序员: 关于内部类的一个思考
- centos6.4 rpm mysql安装步骤
- sqlserver 日常检查脚本
- java设计模式之单例模式
- C语言实现组合数学 邻位互换生成算法
- Linux 系统下MySQL忘记root密码解决办法
- mr任务之从多个Hbase表中读取数据进行处理
- 多线程的单元测试
- mysql的远程数据库连接