Так что я возиться с Java и столкнулся с проблемой с некоторым кодом, который я пытаюсь написать.
Я создал класс с именем LogicGate
, в этом классе есть методы для установки состоянияэкземпляр LogicGate
имеет значение true или false.
LogicGate
имеет только один атрибут и его логическое значение true или false.
Кажется, что все методы работают, кроме одного (Вызванный not ()), где я меняю логическое значение на false, если true и true, если false.
Код изменяет значение в первый раз с true на false, но во второй раз, кажется, игнорирует оператор if,
//Main
public class main {
public static void main(String[] args) {
LogicGate logicGate = new LogicGate(true);
System.out.println(logicGate.state());
System.out.println("");
logicGate.not(logicGate);
System.out.println("");
System.out.println(logicGate.state());
System.out.println("");
logicGate.not(logicGate);
}
}
//Class Logicgate
public class LogicGate {
//The attribute for the for the object
private boolean state;
//Creating the constructor for the object logic gate
public LogicGate(boolean logicGateState) {
state = logicGateState;
}
//This method changes the state of the Logic Gate
public void not(LogicGate obj) {
//Saving the current state of the logic gate
boolean currentState = obj.state();
System.out.println("....." + currentState);
//Checks the state of the object instance and changes it accordingly
if(currentState = true) {
obj.negate(obj);
System.out.println("The state has changed to: " + obj.state() + " Should be false");
}
else if(currentState = false) {
obj.set(obj);
System.out.println("The state has changed to: " + obj.state() + " Should be true");
}
}
//Sets the state of the object boolean variable to true
public void set(LogicGate obj) {
obj.setState(true);
}
//Sets the state of the object boolean variable to false
public void negate(LogicGate obj) {
obj.setState(false);
}
//This method will return the state of the object
//it can be either true or false
public boolean state() {
return state;
}
//Sets the boolean attribute
public void setState(boolean state) {
this.state = state;
}
}
Логическое значение должно просто меняться каждый раз, когда вызывается метод not.
В последней строке кода должно быть указано The state has changed to: true Should be true
.
Результат Iполучаю это:
true
.....true
The state has changed to: false Should be false
false
.....false
The state has changed to: false Should be false