80d0d1331e75001d1dddb6604daa6ad2

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

TXT
45
字号
//【例4-30】  适配器的组合实现方式。
//程序清单4-30:  ObjectAdapterDemo.java
package e4_30;
import java.util.*;
public class ObjectAdapterDemo {// 主类
	public static void main(String[] args) {
		ObjectAdapter oa = new ObjectAdapter();
		oa.output(oa.input());
	}
}
// ①目标适配器接口,有两个方法
interface TargetOutInInterface {
	void output(String name);// 输出方法
	String input();// 输入方法
}
interface AdaptedOutInterface {// ②被转换接口,只有一个方法
	public void output(String name);
}
// ③被适配者,只有一个方法
class AdaptedOut implements AdaptedOutInterface {
	public void output(String name) {// 只有一个输出方法
		System.out.print("Your name  is " + name);
	}
}
// ④以组合方式创建类AdaptedOut的适配器ObjectAdapter
class ObjectAdapter implements TargetOutInInterface {
	private String name;
	// 类ClassAdapter与接口AdaptedOutInterface是组合关系
	private AdaptedOutInterface adaptedOut;
	public ObjectAdapter() {// 构造方法
		this.adaptedOut = new AdaptedOut();
	}
	// 实现接口TargetOutInInterface中的抽象方法
	public void output(String name) {
		adaptedOut.output(name);
	}
	// 实现接口TargetOutInInterface中的抽象方法
	public String input() {
		System.out.println("Please input your name:");
		Scanner sin = new Scanner(System.in);
		name = sin.next();
		return name;
	}
}

⌨️ 快捷键说明

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