java 内部类中 static (内部类对象成员)
来源:互联网 发布:android things 知乎 编辑:程序博客网 时间:2024/05/16 12:36
项目中需要使用到内部类,对外隐藏实现细节,代理类提供访问接口。见以下代码:
上面的代码有一行标注了 error ,表示这一行将通不过编译。让我们来揭示原因。
首先,要明确一点,java 的内部类如果不是 static 的,必须经过外层类的构造才会被构造出来,即,每构造一个内部类,都会产生一个内部类。则只有在定义了一个 A对象 a 的情况下,才会产生 B 这个类,设想一下,如果内部类声明了一个static B 对象成员 b ,那么,就要求 B 这个类一定要被编译器提前知道,具体多提前呢,应该是所有类依赖,重定位解决后,但肯定是在所有非 static 对象定义之前,此时b 的存在就是个疑问了,从语意角度来讲,b 是在 a 构建之后存在的,但从编译器角度讲,b 必然又在 a 之前构建,所以就矛盾了,编译器当然不会放过你。
正确的写法应该将 B 类声明为 static ,这样不仅可以解决上面的问题,而且效率也提高不少,因为 B 类一直存在,不会每次构造一个 A 对象就重新生成一个 B 类。
0 0
- java 内部类中 static (内部类对象成员)
- java 内部类(成员内部类)
- java 内部类(成员内部类)
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- [Java]static内部类
- java static 内部类
- Java 成员内部类
- Java成员内部类
- java成员内部类
- java-成员内部类
- java成员内部类
- java中内部类之成员内部类
- Java 各种内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java 内部类(分四种:成员内部类、局部内部类、静态内部类和匿名内部类)
- Java基础_内部类:静态内部类、成员内部类、局部内部类、匿名内部类 (转)
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类 (转)
- Java 内部类详解(成员内部类、静态内部类、局部内部类、匿名内部类)
- 模式识别、推荐系统中常用的两种矩阵分解-----奇异值分解和非负矩阵分解
- UVALive:Argus
- google推出的SwipeRefreshLayout下拉刷新用法
- 腾讯软件开发实习面试
- 扫地僧来了:一个快递员给搜狗号码通的神建议 众包
- java 内部类中 static (内部类对象成员)
- 第四周作业——图的表示
- C++ 中编写自己的头文件
- 人生淡如菊
- HTTP
- Ubuntu操作系统学习笔记之权限机制
- 使用MyEclipse开发基于JAX-WS的Web service实例
- AFNetworking VS ASIHTTPRequest
- vs2003web项目的vss源代码管理