java随堂练习
题目
为学校各院系开发这样一个小系统,包含类型:学生、教师、系部、打印机,具体要求如下:
1、学生、教师、系部都具有detail()方法以输出详细信息
2、打印机有多种类型,比如:黑白打印机、彩色打印机等
3、系部可能配备其中任意一款打印机,负责打印学生或教师或者系部的详细信息
4、系统要具备良好的可扩展性与可维护性(使用继承、接口)
编写测试类Test进行测试,要求:
–通过中心的彩色打印机打印系部的详细信息
–通过中心的黑白打印机打印教师和学员的详细信息
截图提交。
分析
这我咋说呢, 就是一个随堂练习吧,主要是熟练加强对类的接口使用
解
file-name: prinTest.java
interface Introduceable {
public String detail();
}
interface PrinterFace { // 初始打印机
public void print(String content);
}
class System2 implements Introduceable { // 这是系部
private PrinterFace printer;
public void setPrinter(PrinterFace p) {
this.printer = p;
}
public String detail() {
return "这个是系部";
}
public void print(Introduceable intro) {
printer.print(intro.detail());
}
}
class BlackPrinter implements PrinterFace{ // 黑色打印机
public void print(String content){
System.out.println("黑白打印:");
System.out.println(content);
}
}
class ColorPrinter implements PrinterFace{ // 彩色打印
public void print(String content){
System.out.println("彩色打印:");
System.out.println(content);
}
}
class Teacher2 implements Introduceable { // 这是教师
public String detail() {
return "我是教师";
}
}
class Student2 implements Introduceable { // 这是学生
public String detail() {
return "我是学生";
}
}
// 测试用例
public class printTest {
public static void main(String[] args) {
System2 sys = new System2(); // 新建系部实例
sys.setPrinter(new ColorPrinter()); // 给系部配彩色打印机
sys.print(sys); // 打印系部信息
BlackPrinter blackPrinter = new BlackPrinter(); // 新建黑白打印机实例
Teacher2 teacher = new Teacher2(); // 新建教师实例
blackPrinter.print(teacher.detail()); // 打印教师信息
Student2 student = new Student2(); // 新建学生实例
blackPrinter.print(student.detail());
}
}