자바에서 두 개의 부울 변수를 프로그래밍하고 싶습니다.이 두 변수는 항상 거짓이고 하나는 참이라는 식으로 중첩됩니다. 따라서 하나를 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 동의 함. 이는 또한 업데이트 이상으로 인한 잠재적 인 문제를 해결합니다. 컨텍스트에 따라 다르긴하지만, 두 번째 방법 인 isDead()를 사용하는 대신 외장 코드가 아마도 isAlive()와! isAlive() '(개념적 청결도를 지적하면서 대답하는 것은 잘못된 것이 아닙니다.) –
@ X-Zero 전적으로 동의합니다. 그러나 isDead() 메소드가 청결을 목적으로 많이 사용된다면 어떻게 유익한지를 알 수있었습니다. 게다가, 당신은 죽은 것이 아닌 살아있는 것 (좀비 같은 것?)을 동시에 가질 이유가 있습니다. 하나의 위치에 "dead alive not alive"로직을 넣으면 나중에 변경 사항을 통합합니다. 그래서 예, 전적으로 전적으로 상황에 달려 있다는 것에 동의합니다. – 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 개의 부울이 항상 상반되는 경우, 2 개의 부울을 기반으로 의사 결정을하는 대신 1 개의 부울을 가지고 결정을 내리는 것이 어떻습니까?
로직을 관리하기 위해 setter 및 getter를 사용하십시오.
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 ;}
}
하나만 부울 변수 사용할 수 있습니다
: 나는 또한 당신이 유일한 방법으로 하나 개의 필드, 인 flag1 필요 의심이 아닌 Boolean
boolean
을 원하는 의심
boolean flag = true;
/*
flag is true
!flag is false
*/
...
flag = false;
/*
flag is false
!flag is true
*/
을
public boolean getFlag2() {
return !flag1;
}
두 개의 변수 대신에 !myVar
을 사용하십시오. 원하는 경우이 기능을 사용할 수 있습니다.
- 1. Java에서 두 개의 배열을 혼합하는 방법은 무엇입니까?
- 2. Java에서 부울 표현식 평가 순서?
- 3. 부울 대보다 구체적인 변수
- 4. 부울 변수 이름 제안
- 5. Java에서 일정 시간에 두 개의 목록을 병합
- 6. java java에서 두 개의 XML 문자열
- 7. Java에서 두 개의 double을 XOR 처리
- 8. Java에서 두 개의 GIF를 병합하는 방법은 무엇입니까?
- 9. Java에서 두 개의 다리가있는 OAuth2 예제?
- 10. Java에서 두 개의 배열을 병합하는 방법은 무엇입니까?
- 11. 두 테이블의 많은 부울
- 12. 두 개의 계산 쿼리를 하나의 부울 쿼리로 결합하십시오.
- 13. 두 개의 부울 필드. 단일 입력 필드. Ruby on Rails
- 14. 두 개의 쿼리 결과가 1 $ 변수
- 15. Java에서 클래스 간 변수 전달
- 16. while 문에서 부울 변수 사용
- 17. SELECT INTO 변수, 두 개의 명령문, 변수 추가
- 18. Java에서 부울 배열을 형 변환하고 있습니까?
- 19. 델파이 7의 dll 함수에서 부울 매개 변수
- 20. 두 개의 JSON 비교
- 21. PHP 논리 AND 두 변수
- 22. Java에서 두 개의 입력 스트림을 병합하는 방법은 무엇입니까?
- 23. java에서 두 개의 jar 파일을 처리하는 방법은 무엇입니까?
- 24. 두 개의 partialviews 및 두 개의 모델로보기
- 25. 두 개의 부울을 int로 변환하십시오
- 26. IEnumerable을 두 개의 쿼리없이 부울 조건으로 두 개로 나눌 수 있습니까?
- 27. 보기에서 두 개의 양식이있는 경우 두 개의 매개 변수 세트를 제출할 때이를 전달하는 방법은 무엇입니까?
- 28. Java에서 두 객체 병합
- 29. 반환이 ActiveRecords의 각 값을 비교 부울 변수
- 30. 부울 값에 따라 매개 변수 삽입
'Boolean'과 논리 부정이 필요합니다. –