内部类
概述:把类定义在其他类的内部,这个类就被称为内部类。
内部类访问特点:
- 内部类可以直接访问外部类的成员,包括私有。
- 外部类要访问内部类的成员,必须创建对象。
按照内部类位置分类:
- 成员位置:在成员位置定义的类,被称为成员内部类。
- 局部位置:在局部位置定义的类,被称为局部内部类。
在测试类中直接访问内部类成员:
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
成员内部类被静态修饰后的访问方式是:
外部类名.内部类名 对象名 = new 外部类名.内部类名();
匿名内部类
匿名内部类就是局部内部类的简化写法。前提要存在一个类或接口,可以是抽象类也可以是具体类。其本质是一个继承了该类或者实现了该接口的子类匿名对象。匿名内部类经常可以作为参数来传递
格式:
new 类名或者接口名(){
重写方法;
} ;
**1. ** 通过接口的方式创建匿名内部类
interface Inter {
public abstract void show();
}
class Outer{
public static void main(String[] args) {
new Inter() {
@Override
public void show() {
System.out.println("Hello");
}
}.show();
}
}
2. 通过抽象类的方式创建匿名内部类
abstract class AbstractClass {
public abstract void show();
}
class Outer{
public static void main(String[] args) {
new AbstractClass() {
@Override
public void show() {
System.out.println("Hello");
}
}.show();
}
}