设有2个开关,每个开关有2个状态,当两个开关状态一致时,灯灭,当两个开关状态不一致时,灯亮。设计一个类,模拟这个现象,当有两个不同的人改变开关状态时,输出灯的状态(亮或灭)(注意:开关类在一个自定义包中,测试类在另一个包中 ,一个人一次只能改变一个开关状态 )
时间: 2024-05-05 11:18:08 浏览: 9
好的,我明白了你的问题。根据你所描述的场景,我建议你可以这样设计一个类:
```java
package com.custompackage;
public class Switch {
private boolean state; // 开关状态
public Switch(boolean initState) {
this.state = initState;
}
public boolean getState() {
return state;
}
public void setState(boolean newState) {
state = newState;
}
// 判断两个开关状态是否一致
public static boolean judgeState(Switch s1, Switch s2) {
return s1.getState() == s2.getState();
}
}
```
上述代码中,`Switch` 类有一个 `state` 字段表示自己的状态(开或关),并且提供了 `getState()` 和 `setState()` 方法用于获取和更改状态。此外,还提供了 `judgeState()` 静态方法来判断两个开关状态是否一致。
接下来,你可以编写一个测试类,例如:
```java
package com.testpackage;
import com.custompackage.Switch;
public class TestSwitch {
public static void main(String[] args) {
Switch s1 = new Switch(true);
Switch s2 = new Switch(false);
if (Switch.judgeState(s1, s2)) {
System.out.println("灯灭");
} else {
System.out.println("灯亮");
}
s1.setState(false); // 第一个人改变状态
if (Switch.judgeState(s1, s2)) {
System.out.println("灯灭");
} else {
System.out.println("灯亮");
}
s2.setState(true); // 第二个人改变状态
if (Switch.judgeState(s1, s2)) {
System.out.println("灯灭");
} else {
System.out.println("灯亮");
}
}
}
```
上述测试类中,我们创建了两个开关 `s1` 和 `s2`,并分别初始化为开和关。然后调用 `judgeState()` 方法判断它们的状态,输出灯的状态(亮或灭)。接着,模拟两个人分别改变开关状态并再次判断,输出灯的状态。
希望这个示例可以帮助你解决问题。如果有其他问题,欢迎继续向我提问。