SMC接受客户的订单和信用订单。对于订单,客户提前支付订单价值。对于信用订单,SMC向客户提供订单的全部美元价值(换句话说,客户不应提前为订购的产品付款)。对于信用订单,当订购的商品交付时,客户和SMC代表协商客户在订单美元价值之上支付的利息(作为订单价值的百分比)。利息价值范围应在10到20之间。
对于第一部分,我相信我做得很好。 (Order类定义实例变量orderId,clientName和orderValue。它还定义了带参数的构造函数,方法toString和实例变量的get / set类型方法。)
public class Order {
public int orderId;
public String clientName;
public int orderValue;
/**
* @param orderId
* @param clientName
* @param orderValue
*/
public Order(int orderId, String clientName, int orderValue) {
super();
this.orderId = orderId;
this.clientName = clientName;
this.orderValue = orderValue;
}
/**
* @return the orderId
*/
public int getOrderId() {
return orderId;
}
/**
* @param orderId the orderId to set
*/
public void setOrderId(int orderId) {
this.orderId = orderId;
}
/**
* @return the clientName
*/
public String getClientName() {
return clientName;
}
/**
* @param clientName the clientName to set
*/
public void setClientName(String clientName) {
this.clientName = clientName;
}
/**
* @return the orderValue
*/
public int getOrderValue() {
return orderValue;
}
/**
* @param orderValue the orderValue to set
*/
public void setOrderValue(int orderValue) {
this.orderValue = orderValue;
}
public String toString() {
return "Order [orderId=" + orderId + ", clientName=" + clientName
+ ", orderValue=" + orderValue + "]";
}
}
然后对于第二部分我很困惑,这就是我到目前为止。(CreditOrder类继承了Order类。这个类继承了Order类的实例变量,并定义了它特定的实例变量兴趣。它还定义了一个带有参数的构造函数,实例变量interest的get / set方法,新方法getCreditOrderTotalValue并覆盖方法toString。)我不确定兴趣是否正确完成,我不确定如何处理“getCreditOrderTotalValue”并且覆盖toString方法。
public class CreditOrder extends Order {
public int interest;
public CreditOrder(int orderId, String clientName, int orderValue) {
super(orderId, clientName, orderValue);
}
/**
* @return the interest
*/
public int getInterest() {
return interest;
}
/**
* @param interest
* the interest to set
*/
public void setInterest(int interest) {
this.interest = interest;
}
//getCreditOrderTotalValue
//toString
}
答案 0 :(得分:0)
首先,您需要明确继承以及在面向对象范例中的工作方式。 toString()方法来自java.lang.Object,默认情况下自动继承到所有对象。并且在实现继承(受保护)的情况下正确使用访问说明符。
因此,如果我被允许在课程结构中提出一些改变,那就是......
public class Order {
private int orderValue;
//getters and setters, make protected
public Order(int orderValue) {
this.orderValue = orderValue;
}
protected int calculateOrderValue() {
return this.orderValue;
}
}
public class CreditOrder extends Order {
private int orderValue;
private float interestRate;
//getters and setters for interestRate
public CreditOrder(int orderValue, float interestRate) {
super(orderValue);
this.orderValue = orderValue;
this.interestRate = interestRate;
}
public int calculateOrderValue() {
return getOrderValue() * getInterestRate();
}
}