60a311241d75001d1dddb6604daa6ad2

来自「java程序设计教程的源码」· 代码 · 共 37 行

TXT
37
字号
//【例4-26】  语句匿名类的应用。
//程序清单4-26:  StatementAnonymousClass.java
package e4_26;
public class StatementAnonymousClass {// 主类
	public static void main(String[] args) {
		OuterClass out = new OuterClass();
		out.instanceMethod();
	}
}
class OuterClass {// 外部类
	public void instanceMethod() {// 实例方法
// 格式一:定义一个实现IOutIn接口的语句匿名类,并创建实例,且保存实例的引用值至io
		IOutIn io = new IOutIn() {// 语句匿名类实现接口IOutIn
			public void doOut() {
				System.out.println("实现接口的语句匿名类!");
			}
		};// 语句匿名类是语句的一部分,因此在大括号后必须跟分号
		io.doOut();
// 格式二:定义一个继承基类BaseClass的语句匿名类,并创建实例,且不保存实例的引用值
		new BaseClass(58) {// 语句匿名类继承类BaseClass
			// 匿名类中不能显示定义构造方法
			// public BaseClass(int x,int y){}
			public void printData() {// 匿名类中新增实例方法
				System.out.println("x = " + getX());
			}
		}.printData(); // 输出:x = 58
	}
}
interface IOutIn {// 定义接口IOutIn
	void doOut();// 抽象方法doOut()
}
class BaseClass {// 定义类BaseClass
	private int x;
	public BaseClass(int x) { this.x = x;	}// 构造方法
	public int getX() { return x; }// 实例方法
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?