【发布时间】:2022-01-04 17:06:42
【问题描述】:
我正在尝试过去的面向对象编程的论文问题。 我需要将用户输入值传递给抽象类中的私有变量。但是由于无法实例化抽象类,我无法将用户输入传递给抽象类“Room”中的变量。那么如何将用户输入值传递给抽象类中的私有变量?我不知道用户会选择哪种房间套餐类型(标准或豪华)。所以我也不能实例化子类。任何人都可以帮忙吗? 注意:所有变量都应该通过 set 和 get 方法访问。
public abstract class Room{
private char roomType;
private int roomNumber;
private int numOfDays;
private char roomPackageType;
public void setRoomType(char roomType){
this.roomType = roomType;
}
public char getRoomType(){
return this.roomType;
}
public void setRoomNumber(int roomNumber){
this.roomNumber = roomNumber;
}
public int getRoomNumber(){
return this.roomNumber;
}
public void setNumOfDays(int numOfDays){
this.numOfdays = numOfDays;
}
public int getNumOfDays(){
return this.numOfdays;
}
public void setRoomPackageType(char roomPackageType){
this.roomPackageType = roomPackageType;
}
public char getRoomPackageType(){
return this.roomPackageType;
}
public abstract void callPayment(int numOfDays,String customerType,String roomPackageType);
}
public class Standard extends Room{
public abstract void callPayment(int numOfDays,String customerType,String roomPackageType){
//code
}
}
public class Deluxe extends Room{
public abstract void callPayment(int numOfDays,String customerType,String roomPackageType){
//code
}
}
import java.util.Scanner;
import java.util.*;
public class Q2{
public static void main(String[] args){
Customer c1 = new Customer();
Scanner sc = new Scanner(System.in);
System.out.println("Please specify whether you are a local customer(L) or a foreign customer(F)");
char customerType = sc.next().charAt(0);
if(customerType != 'L' && customerType != 'F')
throw new InputMismatchException("Input must be either 'F' or 'L'");
c1.setCustomerType(customerType);
System.out.println("Enter your NIC number");
String idNumber = sc.nextLine();
c1.setIdNumber(idNumber);
System.out.println("Enter the package you would like to purchase");
char roomPackageType = sc.next().charAt(0);
Room.setRoomPackageType(roomPackageType);
}
}
【问题讨论】:
-
是
roomPackageType定义房间是Standard还是Deluxe?您是否正在尝试对预订系统进行编程?
标签: java oop user-input abstract