Java匿名内部类的语法格式如下:
在创建对象的地方使用new关键字,并在后面直接编写类的定义。
类的定义包括类名和类体,类体可以是一个类的定义,也可以是一个接口的实现。
类体中可以定义成员变量、成员方法和构造方法,并直接使用外部类的成员变量和方法。
匿名内部类不能有显式的构造方法,因为它没有类名。
匿名内部类只能访问final修饰的局部变量,如果要在内部类中使用非final变量,则需要将其声明为final或使用Java 8之后的版本。
匿名内部类可以实现接口、继承类或者实现抽象类。
以下是一个匿名内部类的示例:
public class OuterClass {
private int x = 5;
public void createInnerClass() {
// 创建匿名内部类,并实现接口
MyInterface innerClass = new MyInterface() {
@Override
public void printMessage() {
System.out.println("Hello from anonymous inner class! x = " + x);
}
};
// 调用匿名内部类的方法
innerClass.printMessage();
}
public static void main(String[] args) {
// 创建外部类对象
OuterClass outer = new OuterClass();
// 调用外部类方法创建匿名内部类
outer.createInnerClass();
}
}
// 定义接口
interface MyInterface {
void printMessage();
}
输出结果:
Hello from anonymous inner class! x = 5