Java基础——内部类
1.内部类优缺点
优点:
1.内部类与外部类可以方便的访问彼此的私有域(包含私有方法、私有属性)
2.内部类是另外一种封装(保护性),对外部的其他类隐藏(心脏包在人身体内部)
3.内部类可以实现Java的"多继承",打破单继承的局限(用内部类继承其他类,都放在一个类中即可)
缺点:结构复杂
2.内部类和外部类的关系
1.对于非静态内部类,内部类的创建需要依赖外部类对象,在没有外部类实例之前无法创建非静态内部类,实际上隐藏了Outter.this(外部类以外根本就不知道内部类的存在)
2.内部类是一个相对独立的个体,与外部类没有is-a(继承)关系
3.内部类可以直接访问外部类的元素(包括私有域),但外部类不可以直接访问内部类元素,需要通过内部类的引用间接访问。(两个普通类不能访问彼此的私有属性)
4.内部类中调用外部类属性/方法实际上隐藏了Outter.this.xxx,因此内部类中操作的其实就是外部类的属性/方法
3.内部类的创建
1.非静态内部类(必须先创建外部类对象) Outter.Inner in = new Outter().new Inner()
2.静态内部类(可以不创建外部类对象) O