【发布时间】:2019-10-25 14:53:13
【问题描述】:
我正在使用类的组合。主类包含 2 个其他类。我的问题是如何从组合课程中进入我的主要课程?可能有哪些方法?
例如。我们有包含 2 个设备的机器类。所有 3 个类都有一个布尔状态是否处于活动状态。我们可以打开设备。任务是:当两个设备都打开时,机器状态处于活动状态。 可以使用哪些方法来实现这种行为?
public class Machine {
private boolean active;
private Device1 device1;
private Device2 device2;
public Machine(Device1 device1, Device2 device2) {
this.device1 = device1;
this.device2 = device2;
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public Device1 getDevice1() {
return device1;
}
public Device2 getDevice2() {
return device2;
}
}
public class Device1 {
private boolean active;
public void turnOn(){
// should check the state of another device and change machine state if necessary
this.active = true;
}
}
public class Device2 {
private boolean active;
public void turnOn(){
this.active = true;
// should check the state of another device and change machine state if necessary
}
}
public class App {
public static void main(String[] args) {
Device1 device1 = new Device1();
Device2 device2 = new Device2();
Machine machine = new Machine(device1, device2);
machine.getDevice1().turnOn();
machine.getDevice2().turnOn();
boolean active = machine.isActive(); // should be true
System.out.println(active);
}
}
两个设备都打开后,机器的活动状态应该是true。如何做到这一点?
【问题讨论】:
标签: java inheritance composition