私はオーダークラスを持っています:
public abstract class Order {
protected String location;
protected double price;
public Order(double price, String location){
this.price = price;
this.location = location;
}
public abstract double calculateBill();
public String getLocation() {
return location;
}
public double getPrice() {
return price;
}
public abstract String printOrder(String format);
}
これは、「NonProfitOrder」、「RegularOrder」、および「OverseasOrder」という 3 つのサブクラスによって拡張されます。これらはそれぞれ、計算方法のみが異なりますBill()。
次に、 OrderManger クラスがあります
public class OrderManager {
private ArrayList<Order> orders;
public OrderManager() {
}
public OrderManager(ArrayList<Order> orders) {
this.orders = orders;
}
public void addOrder(Order o) {
orders.add(o);
}
public ArrayList<Order> getOrdersAbove(double val) {
for (Order o : orders) {
double bill = o.calculateBill();
if (bill > val)
orders.add(o);
}
return orders;
}
public int numOrders() {
return orders.size();
}
public String printOrders() {
for (Order o : orders){
String format = "Long";
}
return printOrders("Long");
}
public String printOrders(String type) {
for (Order o : orders) {
}
}
public double totalBill() {
double sum = 0;
for(Order o : orders) {
sum = o.calculateBill();
}
return sum;
}
}
「type」が「Regular」、「Overseas」、または「NonProfit」である「type」のすべての注文の文字列を返すprintOrders(String type)に問題があることを除いて、すべてが正しく機能していると思います. 私の質問は、配列リストをループして特定の「タイプ」のオブジェクトのみを返す正しい方法は何ですか?