1. 内部类,在语法上,必须写在一个类的内部
2.常用的两种内部类:
1) 普通的内部类
2) 静态的内部类
3.普通内部类的一些语法
1)实例化方式,必须实例化外部类
因为都是 普通的类,必须用 new 关键字来实例化,外部类和内部类都需要用 new
外部类 和内不类 用 点 来连接
外部类的实例.内部类的实例
2)不能有 静态 成员或方法
个人理解,非标准:
因为普通内部类,如果要使用必须要实例化,而静态成员或方法 不需要实例化就可以访问的,这就存在冲突。另外一点,JVM 就这种要求,记住就好。
4.静态内部类的一些语法
1)实例化方式,不必实例化外部类
静态内部类,可以直接 使用new关键字来实例化,而不需要把外部类先实例化。
静态内部类的静态方法或属性 ,可以直接用静态内部类来访问,不用实例化
2)不能访问外部类非静态属性
5. 编译后 会生成一个 独立的 .class 文件
6.作用 用法
1)一般内部类, 最好 是只在类内部使用,不对外开放。
如果对外开放的化,可以直接定义一个正常的普通类就行啊,没必要在定义一个内部类。
2)封装 特有的逻辑
a. 作为线程类
b.对同一个接口 实现 不同的 类,但是 只跟外部类相关
7. 总结
在编码过程中,有些逻辑 可以考虑下 是否可以 用内部类实现,使代码更清晰。