我想在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. jQuery中的布爾變量
- 2. 布爾變量中的webdriver
- 3. 設置多個布爾變量爲false在Java中
- 4. 布爾類型在類中的變量
- 5. 在C兩個char變量計算布爾++
- 6. Java SWT ModifyListener設置布爾變量
- 7. Java繼承(局部變量/布爾if)
- 8. ASP.NET布爾變量
- 9. iOS,布爾變量
- 10. 在Java中切換布爾變量的最簡單方法?
- 11. 在Java中布爾的位模式(變量值)?
- 12. 基於兩個布爾變量的分支
- 13. 在JavaScript中偵聽Java布爾變量更改
- 14. Java在application.conf中獲得布爾環境變量
- 15. Java中的布爾信號量
- 16. 評價JavaScript中布爾變量的Perk?
- 17. 布爾變量被返回一個Object []
- 18. 切換一個布爾變量(應用)
- 19. 無限循環涉及Java中的布爾變量
- 20. 布爾變量復位@property
- 21. Javascript Object Constructor&布爾變量
- 22. python - select()on布爾變量
- 23. 循環布爾變量
- 24. 布爾變量翻轉
- 25. 布爾變量解釋
- 26. JavaScript排列(布爾變量)
- 27. NullPointerException例如布爾變量
- 28. ios布爾變量聲明
- 29. 德爾福布爾變量值
- 30. 在兩個視圖控制器之間共享一個布爾變量/ NSNUmber
聽起來像你需要一個'布爾'和一個邏輯否定... –