我想在java中编程两个布尔变量,这两个布尔变量是以某种方式相互关联的方式,即一个总是假的,一个总是正确的。因此,如果您将其中一个设置为true,另一个会自动更改为false。在Java中的两个布尔变量
回答
请勿使用变量 - 使用方法。使用逻辑单件的数据(这是你真正拥有)及使用方法:
使用变量
class Before {
boolean first;
boolean second;
boolean setFirst(boolean newValue) {
first = newValue;
second = !first;
}
boolean setSecond(boolean newValue) {
second = newValue;
first = !second;
}
}
使这个像这样更好了。
class After {
private boolean value;
boolean first() {
return value;
}
boolean second() {
return !value;
}
}
+1因为你的'After'本质上就是我要回答的问题。 – Dylan
+1同意。这也解决了更新异常的潜在问题。虽然取决于上下文,但他并不一定需要第二种方法 - 例如,外部代码应该更关注“isAlive()”和“!isAlive()”,而不是第二个方法isDead() '(你的回答没有错,只是指出了概念清洁)。 –
@ X-Zero我完全同意。然而,如果仅仅为了清洁目的而使用'isDead()'方法,那么我可以看到它是多么有益。此外,你可能有理由同时拥有一些既未死又不活(如僵尸状态)的未来。通过将“死亡意味着没有活着”的逻辑放在一个位置,您可以稍后合并更改。所以是的,我完全同意它完全取决于上下文。 – corsiKa
public class Opposites {
protected boolean x = true;
protected boolean y = false;
public boolean getX() { return x; }
public boolean getY() { return y; }
public boolean toggle() { x=!x; y=!y; }
}
Opposites o = new Opposites();
o.getX(); // => true
o.getY(); // => false
o.toggle();
o.getX(); // => false
o.getY(); // => true
使用智能制定者
class Blah {
private bool1 = true;
private bool2 = false;
setBool1(val) {
this.bool1 = val;
this.bool2 = !val;
}
setBool2(val) {
this.bool2 = val;
this.bool1 = !val;
}
// more setters/getters
}
注意到我不知道你是否真的需要这一点。如果2个布尔变量总是相反的,那么为什么不只有1个布尔变量,并根据它做出决定,而不是根据2个布尔做出决定?
使用setters和getters来为您管理逻辑。
class Foo{
private boolean _bool1;
private boolean _bool2;
public void setBool1(boolean value)
{
_bool1 = value;
_bool2 = !value;
}
public void setBool2(boolean value)
{
_bool2 = value;
_bool1 = !value;
}
public boolean getBool1() { return _bool1 ;}
public boolean getBool2() { return _bool2 ;}
}
,你可以只用一个布尔变量:
boolean flag = true;
/*
flag is true
!flag is false
*/
...
flag = false;
/*
flag is false
!flag is true
*/
我怀疑你想boolean
而不是Boolean
我也怀疑你只需要一个字段,FLAG1与方法
public boolean getFlag2() {
return !flag1;
}
只是得到与!myVar
相反,而不是有两个变量。如果你想的话,这可以是一个功能。
- 1. 布尔变量中的webdriver
- 2. 设置多个布尔变量为false在Java中
- 3. 布尔类型在类中的变量
- 4. Java继承(局部变量/布尔if)
- 5. iOS,布尔变量
- 6. 在Java中切换布尔变量的最简单方法?
- 7. 在Java中布尔的位模式(变量值)?
- 8. 在JavaScript中侦听Java布尔变量更改
- 9. 布尔变量解释
- 10. 布尔变量翻转
- 11. ios布尔变量声明
- 12. 德尔福布尔变量值
- 13. 在两个视图控制器之间共享一个布尔变量/ NSNUmber
- 14. 查询布尔变量与比较JS中的两个字符串
- 15. 如何将一个真正的布尔变成一个变量
- 16. JS - 画布 - 同时画两个画布 - ?喂两个变量?
- 17. java:布尔instanceOf布尔?
- 18. 布尔变量在使用TKinter 8.5
- 19. while语句中使用布尔变量
- 20. 的Java布尔
- 21. 检查是否一个布尔变量在C#中初始化#
- 22. 在布尔变化
- 23. 布尔值变化监听的Java
- 24. 通过Java反射检索布尔变量的值
- 25. 布尔变量名称的Java命名约定:writerEnabled vs writerIsEnabled
- 26. 的Java布尔类变量,用于比较
- 27. 验证布尔变量的状态在一个字典
- 28. 布尔索引的列值存储为一个变量在python
- 29. 如何用Ruby中的多个布尔变量重构方法
- 30. 基于布尔变量的条件c#
听起来像你需要一个'布尔'和一个逻辑否定... –