cycles.java

来自「java编程思想第四版习题答案」· Java 代码 · 共 57 行

JAVA
57
字号
// innerclasses/Cycles.java
// TIJ4 Chapter Innerclasses, Exercise 16, page 364
/* Modify the solution to Exercise 18 from the Interfaces chapter to use
* anonymous inner classes.
* (Exercise 18, Interface: Create a Cycle interface, with implementations
* Unicycle, Bicycle and Tricycle. Create factories for each type of Cycle,
* and code that uses these factories.
*/

import static org.greggordon.tools.Print.*;

interface Cycle {
	void ride();
}

interface CycleFactory {
	Cycle getCycle();
}

class Unicycle implements Cycle {
	private Unicycle() { println("Unicycle()"); }
	public void ride() { println("Ride Unicycle"); }
	public static CycleFactory factory =
		new CycleFactory() {
			public Cycle getCycle() { return new Unicycle(); }
		};
}

class Bicycle implements Cycle {
	private Bicycle() { println("Bicycle()"); }
	public void ride() { println("Ride Bicycle"); }
	public static CycleFactory factory =
		new CycleFactory() {
			public Cycle getCycle() { return new Bicycle(); }
		};
}

class Tricycle implements Cycle {
	private Tricycle() { println("Tricycle()"); }
	public void ride() { println("Ride Tricycle"); }
	public static CycleFactory factory =
		new CycleFactory() {
			public Cycle getCycle() { return new Tricycle(); }
		};
}

public class Cycles {
	public static void rideCycle(CycleFactory factory) {
		Cycle c = factory.getCycle();
		c.ride();
	}
	public static void main(String [] args) {
		rideCycle(Unicycle.factory);
		rideCycle(Bicycle.factory);
		rideCycle(Tricycle.factory);
	}
}

⌨️ 快捷键说明

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