2 回答
TA贡献1859条经验 获得超6个赞
所以有几个问题,即:
运算符=是赋值运算符。您正在进行比较,这意味着您需要使用==运算符。
对于
boolean
值,您实际上不需要在 if 中使用比较运算符,因为它是true
orfalse
(不是 true)。如果你的第一个
if
正在检查 atrue
那么你的 else 逻辑上正在检查false
所以你的代码应该看起来像这样:
if(currentState) {
obj.negate(obj);
System.out.println("The state has changed to: " + obj.state() + " Should be false");
} else {
obj.set(obj);
System.out.println("The state has changed to: " + obj.state() + " Should be true");
}
然而,我也不明白为什么您将LogicGate对象传递到 的方法中LogicGate,以设置其中包含的变量的状态LogicGate(或任何与LogicGates此相关的方法)。为什么不使用已有的方法setState(boolean state),那么你的实现将是:
if(currentState) {
obj.setState(Boolean.FALSE);
System.out.println("The state has changed to: " + obj.state() + " Should be false");
} else {
obj.setState(Boolean.TRUE);
System.out.println("The state has changed to: " + obj.state() + " Should be true");
}
但最终,您的not()方法应该像这样简单:
public void not() {
this.state = !state;
}
TA贡献1811条经验 获得超6个赞
尝试将所有单个 = 更改为“==”或析构函数代码
if(currentState) {
obj.negate(obj);
System.out.println("The state has changed to: " + obj.state() + " Should be false");
}
else{
obj.set(obj);
System.out.println("The state has changed to: " + obj.state() + " Should be true");
告诉我是否有效
添加回答
举报