我是Java的新手,我正在努力解决这个特殊的问题,并且只是解决了这个问题。
问题陈述如下:
一家着名的酒店在迈阿密有三家分店。即x,y和z(实际上它们给出了名称)。每个客户都有两种类型。常客和退休人员。此外,每个分支都有自己的评级x给予3星评级,而y有5星评级,z有4星评级。
每家酒店都有特定的周末和工作日价格。 x平日为普通客户收费100美元,周末收费120美元。平日收费90美元,周末收费60美元。同样地,y在平日为普通客户收费130美元,在周末收费150美元。平日收款100美元,周末收费95美元。虽然z在工作日为普通客户收费195美元,在周末收费150美元。平日收款120美元,周末收费90美元。现在,当客户要求特定细节时,您需要找到哪个酒店会产生客户利润。如果酒店之间存在联系,请比较评级并提供结果。
输入格式:
常规:16Mar2010(太阳),19M2010(星期三),21Mar2010(星期五)
class Hotel {
private int ratings;
public int getRating() {
return ratings;
}
public void setRating(int rating) {
ratings = rating;
}
}
class Customer extends Hotel {
private String regular;
private String rewardee;
public String getRewardee() {
return rewardee;
}
public void setRewardee(String rewardee) {
this.rewardee = rewardee;
}
public String getRegular() {
return regular;
}
public void setRegular(String regular) {
this.regular = regular;
}
}
class Pricing extends Customer {
private double weekends;
private double weekdays;
public double getWeekends() {
return weekends;
}
public void setWeekends(double weekends) {
this.weekends = weekends;
}
public double getWeekdays() {
return weekdays;
}
public void setWeekdays(double weekdays) {
this.weekdays = weekdays;
}
}
public class Main {
public static void main(String[] args) {
Pricing x = new Pricing();
x.setRating(3);
x.setWeekdays(100);
x.setWeekends(120);
Hotel y = new Hotel();
y.setRating(5);
Hotel z = new Hotel();
z.setRating(4);
}
}
我真的很难从这里挺身而出,我正朝着正确的方向前进吗?如何进一步解决问题。请帮助,如果可能的话,你可以参考任何好书来建立我的技能。
此外,我正在考虑调用其他类中的类来将不同的类连接在一起。这种方法是否合适。
由于
P.S不是家庭作业。
答案 0 :(得分:2)
酒店"有一个"评级和两种定价模式 - 一种针对普通客户,一种针对获奖者:
class Hotel {
int rating;
PricingSchema forRegulars, forRewardees;
}
定价模式有两种价格:周末和正常:
class PricingSchema {
double weekendPrice, weekdayPrice;
}
客户是或不是获奖者:
class Customer {
boolean isRewardee;
}
挑战:针对特定客户计算给定酒店的特定日期的价格:
hotel.price(customer, dayOfWeek);
现在看看这会带你去哪里。
答案 1 :(得分:1)
您目前正在使用是关系。您声明定价是客户,而客户是酒店。您应该考虑的是具有关系。您应该在" Hotel"中声明客户的实例。 private Customer regular
或private Customer rewardee
同样适用于您的定价。
答案 2 :(得分:0)
我真的很想从这里挺身而出,我是朝着正确的方向前进的吗?
不,你不是。我非常确定Customer
不 Hotel
,Pricing
也不应该是Customer
。你滥用继承,而对象应该只是相互关联。
答案 3 :(得分:0)
我自己也不是专家,但建议你重新考虑设计。定价并非属于客户的真实状态,属于酒店。我的第一个想法是拥有酒店级别的持有评级和各种价格(常规/奖励的周末/工作日)。这些将属于每个酒店对象。
单独的客户类(不相关)可以保存常规/奖励的布尔值,您可以将其输入到酒店类的getPricing方法中。可能名称,地址等也可能在那里及时生活。
然后,您可以比较主要的酒店对象。根据您目前正在尝试做的事情,我认为您还不需要在任何地方扩展任何课程。如果定价结构开始蔓延,您可能会考虑将其保留在另一个类中,但我认为这样做了。