2

嘿伙计们,我正在编写一个程序,它有一个抽象类“Order”,它由三个类“NonProfitOrder”、“RegularOrder”和“OverseasOrder”扩展。每个都在抽象类中实现抽象方法 printOrder。

该方法接受字符串为“Long”或“Short”

如果“长”看起来像:

非营利组织

地点:加州

总价:200.0

如果“短”看起来像:

非营利订单-地点:CA,总价:200.0

public class NonProfitOrder extends Order {

public NonProfitOrder(double price, String location) {
    super(price, location);
}

public double calculateBill() {
    return getPrice();
}

public String printOrder(String format){
    String Long = "Non-Profit Order" + "\nLocation: " + getLocation() +  "\nTotal Price: " + getPrice();
    return Long;
}

}

这是我到目前为止的代码,可以很好地打印“Long”,我的问题是如何根据调用的“Long”或“Short”来打印它。

有没有内置的java方法来做到这一点?或者有什么方法可以写这个字符串?

感谢您的任何帮助!

4

3 回答 3

1

例如,printOrder 方法中的一个简单 if 语句就足够了

public String printOrder(String format){
 if(format.equals("Long"){
  print and return the long version
 }else{
  print and return the short version
 }
}
于 2013-09-11T21:53:59.380 回答
0

您可以按照以下方式进行操作:

public String printOrder(String format){
    String orderDetailsLong = "Non-Profit Order" + "\nLocation: " + getLocation()     +  "\nTotal Price: " + getPrice();
    String orderDetailsShort = "Non-Profit Order" + " Location: " + getLocation() +  " Total Price: " + getPrice();

    if(format.toLowerCase()=="long")
    {
       return orderDetailsLong;
    }

    if(format.toLowerCase()=="short")
    {
        return orderDetailsShort;
    }

     // you might want to handle the fact that the supplied string might not be what you expected 
    return "";

}
于 2013-09-11T21:54:56.487 回答
0

你能帮助有String参数的方法吗?如果是这样,指定是否使用长格式的布尔值可能会更容易。

public String printOrder(boolean longFormat) {
    if (longFormat) {
        return "Non-Profit Order" + "\nLocation: " + getLocation() +  "\nTotal Price: " + getPrice();
    }
    return "Non-Profit Order Location: " + getLocation() +  " Total Price: " + getPrice();
}
于 2013-09-11T21:56:49.190 回答