9.内部类

内部类

内部类是在一个类里定义另一个类
内部类可以直接访问外部类的成员,包括私有,外部类要访问内部类的成员必须创建对象

public class Outer{
    private int num = 10;
    public class Inner{
        public void show() {
            System.out.println(num);
        }
    }
    public void method() {
        Inner i = new Inner();
        i.show();
    }
}

成员内部类

将一个类设计为内部类的目的,多数是不想让外界访问,因此内部类的定义应私有化,再提供一个可以让外界调用的方法,方法内部创建内部类对象并调用

局部内部类

在方法中定义的类,外界无法直接调用,需要在方法内部创建对象并使用
局部内部类可以直接访问外部类的成员,也可以访问方法内的局部变量

匿名内部类

本质是一个继承了该类或者实现了该接口的子类对象(但匿名)
如果某个方法需要接口或抽象类的子类对象,可以传递一个匿名内部类以简化传统代码
使用匿名内部类就不用显式创建子类的对象,适用于一次性操作

上一篇:hive 多表连接查询并将结果存入新表


下一篇:类中定义装饰器 装饰类中的实例方法