java期末作业 模拟空调

定义两个类ChineseAirConditioner(Z国空调)和AmericanAirConditioner(M国空调),执行下面代码:
public class Main {
public static void main(String[] args) {
System.out.println(";测试中国空调"😉;
ChineseAirConditioner conditioner1 = new ChineseAirConditioner();
conditioner1.startUp();
conditioner1.displayStatus();
conditioner1.shutDown();
conditioner1.displayStatus();

    System.out.println(";***测试美国空调***";);
    AmericanAirConditioner conditioner2 = new AmericanAirConditioner();
    conditioner2.startUp();
    conditioner2.displayStatus();
    conditioner2.shutDown();
    conditioner2.displayStatus();
}

}

可产生如下输出:
测试中国空调
空调状态: 开启
空调状态: 关闭
测试美国空调
Air Conditioner Status: ON
Air Conditioner Status: OFF

先确保能够理解并运行原始版本,再逐步升级到抽象类版本(先通过引入一个公共超类简化类定义中的重复代码,再简化main中的代码)。在升级代码的过程中体会继承和抽象方法的好处。

public class Main {
private static void test(Conditioner conditioner) {
conditioner.startUp();
conditioner.displayStatus();
conditioner.shutDown();
conditioner.displayStatus();
// 不在Conditioner中写displayStatus的话
// 无法调用displayStatus,也就无法发挥多态和动态绑定的威力
}
public static void main(String[] args) {
System.out.println(";测试中国空调"😉;
test(new ChineseAirConditioner());
System.out.println(";测试美国空调"😉;
test(new AmericanAirConditioner());
}
}

public class ChineseAirConditioner extends Conditioner{
public void displayStatus() {
System.out.println(";空调状态: "; + (isOn ? ";开启"; : ";关闭"😉);
}

}

public class AmericanAirConditioner extends Conditioner {
public void displayStatus() {
System.out.println(";Air Conditioner Status: "; + (isOn ? ";ON"; : ";OFF"😉);
}
}

public abstract class Conditioner {
protected boolean isOn = false;
// protected: 本包和子类可以访问
public void startUp() {
isOn = true;
}
public void shutDown() {
isOn = false;
}
public abstract void displayStatus();
}

posted @ 2024-11-29 15:23  tting111  阅读(10)  评论(0)    收藏  举报