Я пытаюсь создать программу, используя конструктор, который имеет три двери и переключает их из открытого и закрытого. Фронт открыт, Сторона закрыта, Назад закрыта. Затем я пытаюсь переключиться на Фронт закрыт, Сторона открыта, а Назад открыта. Моя программа работает правильно, но я считаю, что я не использовал конструктор правильно. Также для моего класса тестера есть лучший способ переключить состояние двери? Спасибо! двери классаopenClose Дверная программа с использованием конструктора
public class Door {
String name, state; // state is either "open" or "closed"
/**
* Constructor class that receives two arguments.
*
* @param name
* @param state
*/
public Door(String name, String state) {
this.name = name;
this.state = state;
}
public String state() {
return state;
}
public void setState(String state) {
this.state = state;
}
public void setName(String name) {
this.name = name;
}
public String name() {
return name;
}
// method sets door state to "open"
public void open() {
state = "open";
} // end open
// method sets door state to "closed"
public void close() {
state = "closed";
} // end close
public String output() {
return "Door name: " + name
+ '\n' + "State of door: " + state;
}
} // end class Door
DoorTester класс
public class Doors {
public static void main(String[] args) {
Door front = new Door("Front", "open");
Door side = new Door("Side", "closed");
Door back = new Door("Back", "closed");
System.out.println(front.output());
System.out.println(side.output());
System.out.println(back.output());
if (front.state.equals("open")) {
front.close();
}
System.out.println(front.output());
if(side.state.equals("closed")){
side.open();
}
System.out.println(side.output());
if(back.state.equals("closed")){
back.open();
}
System.out.println(back.output());
}
}
В вашем сценарии ваши двери имеют только два состояния, так почему бы просто не использовать 'boolean' (' isOpen'?), Чтобы указать их состояние? – JonK
Почему вы считаете, что не используете конструктор правильно? – Tgsmith61591
На самом деле я был просто смущен с моим тестером и что я использовал состояние String вместо boolean, что заставило меня думать, что я неправильно использовал конструктор. Однако в моем исходном коде я снова посмотрел на него, и он используется правильно. @ Tgsmith61591 –