文档章节

Java内部类

lelinked
 lelinked
发布于 2017/04/14 10:11
字数 414
阅读 14
收藏 0

Java内部类是一种名字隐藏和组织代码的模式,不过内部类还有其它的用途,当生产一个内部类的对象时,此对象与制造它的外围对象之间就有了一种联系,所以它能访问其外围对象的所有成员,而不需要任何特殊条件,此外内部类还拥有其外围类的所有元素的访问权。

之所有能这样,是因为当某个外围类的对象创建了一个内部类对象时,此内部类对象必定会密码地捕获一个指向那个外部内对象的引用,然后,在你访问外围类的成员时,就是用哪个引用选择外围类的成员。这些事情编辑器会自动帮你处理,所有你现在可以看到:内部类的对象只能在其外围类的对象相关联的情况下才能被创建(就像你应该看到,在内部类是非static类时)。构建内部类对象时需要一个指向其外围类对象的引用,如果编辑器访问不到这个引用就会报错。

所有就会有一个问题,在创建内部类之前必须要创建其外围类对象。 如果内部类是个静态的,则不需要,依然可以用 类名 对象名 = new 类名的方法进程创建内部类的对象,需要注意的是,静态内部类可以创建静态方法和非静态方法,非静态内部类不能创建静态方法。

© 著作权归作者所有

lelinked
粉丝 4
博文 26
码字总数 18263
作品 1
成都
私信 提问

暂无文章

etcd 在超大规模数据场景下的性能优化

作者 | 阿里云智能事业部高级开发工程师 陈星宇(宇慕) 概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目。etcd的应用场景很广,很多地方都用到了它,例如kubernete...

zhaowei121
11分钟前
0
0
MYSQL主从介绍

MYSQL软件概念 MYSQL是一款数据库,关系型数据库系统; MYSQL主要用于存放:员工姓名、身份证ID、商城订单及金额、销售业绩及报告,学生考试成绩、网站帖子、论坛用户信息等; MYSQL在WEB架构...

寰宇01
14分钟前
0
0
org.apache.cxf.interceptor.Fault: null

出现这个异常的原因:json字符串为null 所以会出现这个错误。需要加上条件判断。 如果不是这个原因,可以参考: https://blog.csdn.net/rshw123456/article/details/8001677...

嘿嘿嘿IT
15分钟前
0
0
gradle控制so库的输出位置

gradle.taskGraph.beforeTask { task -> String abi = "lib/armeabi/" def TASK_NAME = "transformNativeLibsWithStripDebugSymbolFor" String buildType = "debug" //S......

Gemini-Lin
15分钟前
1
0
AndroidL 开机展示Keyguard锁屏机制初探

目录 目录 锁屏时序图 开机启动到PhoneWindowManager的systemReady方法 锁屏加载流程 PhoneWindowManager KeyguardServiceDelegate KeyguardServiceWrapper KeyguardService KeyguardViewMe......

天王盖地虎626
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部