我想在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#
聽起來像你需要一個'布爾'和一個邏輯否定... –