我已经完成了大多数代码,但是现在我陷入了如何使用布尔值来确定客户是否有资格享受折扣的麻烦。
System.out.print("Enter invoice number: ");
int invoiceNum = console.nextInt();
System.out.print("Enter first name: ");
String firstName = console.next();
System.out.print("Enter last name: ");
String lastName = console.next();
System.out.println("Is the customer qualified for a discount? (Y or N): ");
String qualified = console.next();
System.out.print("Enter discount rate ( ex. 12 for 12%): ");
double discountRate = console.nextDouble();
return new Service(invoiceNum, firstName,lastName, true/*???*/, discountRate);
@Override
public double calculateCost(){
if(super.isIsQualifiedDiscount() == true){
double total = serviceCharge * (1 - (super.getDiscountRate() / 100));
System.out.printf("%nInspection Charge with Discount: %.2f", total);
return total;
}
else{
return serviceCharge;
}
}
@Override
public String toString() {
return "Inspection Service Charge: " + serviceCharge;
}
我应该如何连接这两部分,以便可以使用Y或N来决定?以下是我的作业照片:enter image description here
您可以尝试
boolean isQualified = qualified.toLowerCase().equals("y")
编辑:
如@ user85421在评论中所建议,替代的和更好的方法是
boolean isQualified = qualified.equalsIgnoreCase("y")
根据您的问题陈述,服务类应为您的数据成员包括getter和setter方法。折扣资格的状态应为服务类中的布尔变量。因此,一旦从控制台读取了输入,就可以使用以下代码将值设置为布尔变量。
String discountStatus = sc.next();
setQualified(status.equalsIgnoreCase("Y"));
现在在您的calculateCost()方法中,您调用基类方法isQualified()来评估条件。
if(isQualified()){
// business logic
}