나는 RoomBase
이라는 클래스를 만들고자하는데 추상 메서드와 두 개의 특성을 가지고 있으므로 RoomBase
클래스가 getRoomDetailsFromUser()
에서 수행하는 모든 작업을 상속받을 수 있도록 프로그램을 만들어야합니다. Room
클래스추상 클래스는 다른 클래스의 메서드와 속성을 상속합니다
RoomBase
클래스 :
public abstract class RoomBase {
public abstract void getRoomDetailsFromUser();
private int roomNumber;
private int NumberOfSeats;
}
Room
클래스 : 난 당신이 조금 더 구현보다 디자인에 대한 생각을 생각
public abstract class Room implements Bookable {
Scanner input = new Scanner(System.in);
private static int roomNumber;
private static int numberOfSeats;
private static String reservedBy = "";
private static boolean reserved;
private static boolean hasSmartBoard;
/**
* Get the attribute values from the user.
*/
public Room(int roomNumber) {
this.roomNumber = roomNumber;
}
public void getRoomDetailsFromUser() {
System.out.print("Enter number of seats: ");
numberOfSeats = input.nextInt();
input.nextLine();
System.out.print("Does this classroom have a smart board? (Y/N)");
hasSmartBoard = input.nextLine().equalsIgnoreCase("y");
}
public boolean isHasSmartBoard() {
return hasSmartBoard;
}
public void setHasSmartBoard(boolean hasSmartBoard) {
this.hasSmartBoard = hasSmartBoard;
}
public static int getNumberOfSeats() {
return numberOfSeats;
}
public void setNumberOfSeats(int numberOfSeats) {
this.numberOfSeats = numberOfSeats;
}
public String getReservedBy() {
return reservedBy;
}
public void setReservedBy(String reservedBy) {
this.reservedBy = reservedBy;
}
public boolean isReserved() {
return reserved;
}
public void setReserved(boolean reserved) {
this.reserved = reserved;
}
public int getRoomNumber() {
return roomNumber;
}
/**
* Update the room to reserved and get the reserved by.
*/
public void reserveThisRoom(){
this.reserved = true;
System.out.println("Enter the name of the person reserving this room: ");
reservedBy = input.nextLine();
}
/**
* Update the room to not reserved and clear the reserved by.
*/
public void releaseThisRoom(){
this.reserved = false;
reservedBy = "";
System.out.println("Room has been released\n");
}
public String toString() {
String output = "\n\n******************************"
+ "\nRoom Number: " + roomNumber
+ "\nNumber of Seats: " + numberOfSeats
+ "\nReserved By: " + reservedBy
+ "\nReserved: " + reserved
+ "\nSmart Board: "+ hasSmartBoard;
return output;
}
}