题目描述:
有黑白的和彩色的两种打印机,输入打印机名称,打印相应结。
步骤:
定义一个父类Printer,在其中定义打印机名称以及方法print
package com.jer.ch09.printer;
public class Printer {
protected String name;
public Printer(String name) {
super();
this.name = name;
}
public void print() {
// TODO Auto-generated method stub
System.out.println("您使用的是"+name+"打印机 ");
}
}
定义子类黑白打印机和彩色打印机
package com.jer.ch09.printer;
public class BlackPrinter extends Printer {
public BlackPrinter() {
super(PrinterFactory.BLACK);
}
public void print() {
super.print();
System.out.println("打印的是黑白的");
}
}
package com.jer.ch09.printer;
public class ColorPrinter extends Printer {
public ColorPrinter() {
super(PrinterFactory.COLOUR);
// TODO Auto-generated constructor stub
}
public void print() {
super.print();
System.out.println("打印的是黑白的");
}
}
定义一个工厂类:
package com.jer.ch09.printer;
public class PrinterFactory {
public static final String BLACK = "黑白";
public static final String COLOUR = "彩色";
public static Printer getPrinter(String name) {
switch (name) {
case BLACK:
return new BlackPrinter();
case COLOUR:
return new ColorPrinter();
default:
return null;
}
}
}
定义一个测试类,测试结果:
package com.jer.ch09.printer;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Printer printer = null;
while (true) {
System.out.print("请输入打印机种类:");
printer = PrinterFactory.getPrinter(input.next());
if (printer!=null) {
printer.print();
input.close();
return;
}else {
System.out.println("您输入的打印机种类有误");
}
}
}
}