Contest1398 - 【Java程序设计】第四次作业【课程组】
A : [OJ2047]Java习题:类的重用、接口设计及其应用
import java.util.Scanner;
// 定义抽象类Door,包括:code(int)、material(String)、带参数的构造方法、抽象方法void open()。
abstract class Door{
int code;
String material;
public Door(int code, String material){
this.code = code;
this.material = material;
}
abstract void open();
}
// 定义接口ISafe,其中void checkFace()方法表示人脸识别,void checkFinger()方法表示指纹识别。
interface ISafe{
public void checkFace();
public void checkFinger();
}
// 定义子类SafeDoor继承Door并实现ISafe接口
class SafeDoor extends Door implements ISafe{
//定义有参的构造方法,参数包括:code, material, safeLevel
// 要求设计带参数的构造方法,并调用父类带参数的构造方法
int safeLevel;
public SafeDoor(int code, String material, int safeLevel){
super(code, material);
this.safeLevel = safeLevel;
}
// 实现接口中的checkFace()方法,打印输出:"人脸识别"
public void checkFace(){
System.out.println("人脸识别");
}
// checkFinger()方法,打印输出:"指纹识别"
public void checkFinger(){
System.out.println("指纹识别");
}
// 同时设计 public void open()方法
// 当 safeLevel==1时,输出当前对象的材质和安全级别,并调用checkFace()方法,
// 当safeLevel==2时, 输出当前对象的材质和安全级别,调用checkFace()和checkFinger()两个方法。
public void open(){
System.out.println("材质=" + material + " 安全级别=" + safeLevel);
if (safeLevel == 1){
checkFace();
}
else if (safeLevel == 2){
checkFace();
checkFinger();
}
}
}
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int code1;
String material1;
int safeLevel1;
int code2;
String material2;
int safeLevel2;
//输入两组数据,分别表示门的编号、材质和安全级别
//输入格式如:
// 1 木质 1
// 2 铝合金 2
code1 = input.nextInt();
material1 = input.next();
safeLevel1 = input.nextInt();
code2 = input.nextInt();
material2 = input.next();
safeLevel2 = input.nextInt();
//定义数组doors存储两个Door的实例,遍历数组并执行数组元素的open方法。
//用输入信息,对数组中的两个元素进行实例化
Door[] doors = new Door[2];
doors[0] = new SafeDoor(code1, material1, safeLevel1);
doors[1] = new SafeDoor(code2, material2, safeLevel2);
//遍历数组doors中的元素,并调用其open()方法。
for (Door door:doors){
door.open();
}
}
}
Comments | NOTHING