2013-10-04 52 views
-2

我所应该做的事:调用Java中的方法和返回啤酒成本

添加一些必要的语句到printOrderCost()方法在 主类,以这种方法计算并打印的 总成本订单中的所有啤酒项目。 (此方法调用getCost()方法 每个啤酒项,累积全部getCost() 值的总和,然后打印的总和 - 所有啤酒对象的总成本。)

代码:

public static void printOrderCost(Beer[] order) 
{ 
    double totalCost; 
    int count; 

} 


} 

public double getCost() 
{ 
    double cost; 
    cost = quantity * itemCost; 
    return (cost); 

} 

public String toString() // not necessary to format the output 
{ 
    String s; 
    s = brand + " "; 
    s += quantity + " " ; 
    s += itemCost + " "; 
    s += getCost(); 

    return s; 


} 

输出:

Bud 5 3.0 15.0 
Canadian 5 1.0 5.0 
Blue 3 2.0 6.0 
White Seal 4 1.0 4.0 
Bud Light 1 2.0 2.0 
+2

1),看它是否工作,编写代码来测试它。 2)调用'toString()'中的方法,只需调用它。让我们看看你想出了什么。 –

+1

不要删除你的问题后,它已被回答... –

回答

0

您的代码看起来好像没什么问题。要在toString()方法中调用getCost(),只需使用getCost()调用它即可。

所以你的toString()方法应该是这样的:

public toString(){ 
    String s; 
    s = brand + " "; 
    s += quantity + " " ; 
    s += itemCost + " "; 
    s += getCost(); 

    return s; 
} 

希望这是你在找什么:)

+0

奇妙,伟大的工作CodingBird,这正是我所期待的,我真的appreicate你的帮助 –

+0

使用'StringBuilder'而不是字符串,并在返回时将其转换为'string',这将有助于你正确的内存管理。 – Yup

0

从您提供的代码中,getCost法“长相“精

toString方法应该只需要被附加到returnStrings

public String toString() // not necessary to format the output 
{ 
    String s; 
    s = brand + " "; 
    s += quantity + " " ; 
    s += itemCost + " "; 
    s += getCost(); 
    return s; 
} 

你可能也想看看NumberFormat,这将允许您控制输出格式,以防万一你得到一个好笑的看着值;)

+0

感谢MadProgrammer我感谢您的帮助 –

0

它通常是一个坏主意,添加字符串因为Java会为每次添加创建一个唯一的String,这会导致一些不必要的开销。您可以使用StringBuilder作为通用工具,或者,如果您知道字符串的确切格式,可以使用String.format(...)。

实施例:

public toString() { 
    return String.format("%-10s %2d %6.2f %6.2f", brand, quantity, itemCost, getCost()); 
}