6.4 内部类
- 概念:内部类就是定义在另一个类中的类。
- 好处:可以访问该类的所有数据,包括私有数据。
内部类对同个包的其他类隐藏。
一、内部类访问对象
- 内部类和外部类是类之间的关系,并不是每个外部类都有一个内部类的实例域。
- 内部类的对象总有一个隐式引用,指向创建它的外部类对象
- 只有内部类可以是私有类,而常规类只可以是包可见性或者是公有可见性。
二、内部类规则
- 可以采用outer.new Inner(...)来创建内部类
- 内部类声明的所有静态域都必须是final,而且内部类不能有static方法
- 编译器会把内部类翻译成类名为: outer$inner 的常规类
三、内部类的分类
- 局部内部类:
1) 局部内部类不能用public或者private声明,它的作用域被限制在这个局部类的块中
2) 优点:对该局部方法之外完全隐藏、不仅能访问外部类,还可以访问局部变量,不过那些局部变量必须是final。
- 匿名内部类:
1)匿名类不能有参数。
- 静态内部类:
when:只是为了把一个类隐藏在另一个类中,并不需要在其中引用外部类的对象。
静态内部类除了没有生成外部类的引用外,与其他所有内部类完全一样。
在接口中声明内部类自动转为static和public
时间: 2024-10-20 13:54:18