【发布时间】:2016-07-31 00:35:43
【问题描述】:
到目前为止,我已经设法使用一个名为 ExpenseItem 的类对费用进行建模。此类使用属性名称、金额和频率对费用进行建模。属性应建模为该类的私有成员。因此,我使用了一个接受这三个参数的构造函数。
我在类中实现以下方法时遇到问题:
年度总计;它应该返回 ExpenseItem 对象的估计总费用。它需要是数量 * 频率。
我在实现该方法时遇到了困难,因此我可以让它从 ExpenseItem 中获取所有金额和频率并将总数相加。到目前为止,我只有 3 个:
ExpenseItem e1 = new ExpenseItem ("Coffee", 2.25 , 6);
ExpenseItem e2 = new ExpenseItem ("Food", 5.30 , 5);
ExpenseItem e3 = new ExpenseItem ("Gas", 20.00 , 2);
如何实现一个方法,从 e1、e2、e3、e(n)... 中获取双精度值并乘以每个值的费用?例如,e1 年度总计 = 2.25 * 6。
当前代码如下:
public class ExpenseItem {
private String name;
public double amount;
public double frequency;
public double total;
public ExpenseItem(String name, double amount, double frequency) {
this.name = name;
setAmount(amount);
setFrequency(frequency);
}
public double annualTotal(double amount, double frequency){
double total= amount+frequency;
return total;
//System.out.printf("the total is:",total );
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAmount(double amount){
this.amount = amount>=0 ? amount:0 ;
}
public double getAmount(){
return amount;
}
public void setFrequency(double frequency){
this.frequency = frequency>=0 ? frequency:0 ;
}
public double getFrequency(){
return frequency;
}
public static void main(String[] args) {
ExpenseItem e1 = new ExpenseItem ("Coffee", 2.25 , 6);
ExpenseItem e2 = new ExpenseItem ("Food", 5.30 , 5);
ExpenseItem e3 = new ExpenseItem ("Gas", 20.00 , 2);
System.out.println("Expense Item Amount Frequency\n");
outputInfo(e1);outputInfo(e2);outputInfo(e3);
}
private static void outputInfo(ExpenseItem e){
System.out.printf("%-15s\t%5.2f\t%5.0f\n",
e.getName(),e.getAmount(), e.getFrequency() );
}
}
【问题讨论】:
-
你不会从 ONE ExpenseItem 中得到它 - 这不是一个非常有趣的平均值。您更有可能创建一个 ExpenseItems 列表并对其进行平均。
-
是的,您需要创建某种持有者类——例如
ExpenseAccount——来保存你所有的费用项目。然后创建一个方法来汇总 ExpenseAccount 上的 ExpenseItems。
标签: java object methods constructor