我如何将此代码拆分为两个类?我希望Input类处理纯粹的输入和Tax类来处理税收和结果的添加。这可能吗?所以基本上我想通过第一类TaxClass而不是Input类来打印税总额等。这是我的代码:
public class TaxClass
{
private Input newList;
/**
* Constructor for objects of class Tax
* Enter the number of items
*/
public TaxClass(int anyAmount)
{
newList = new Input(anyAmount);
}
/**
* Mutator method to add items and their cost
* Enter the sales tax percentage
*/
public void addItems(double anyTax){
double salesTax = anyTax;
newList.setArray(salesTax);
}
}
public class Input
{
private Scanner keybd;
private String[] costArray;
private String[] itemArray;
/**
* Constructor for objects of class Scanner
*/
public Input(int anyAmountofItems)
{
keybd = new Scanner(System.in);
costArray = new String[anyAmountofItems];
itemArray = new String[anyAmountofItems];
}
/**
* Mutator method to set the item names and costs
*/
public void setArray(double anyValue){
//System.out.println("Enter the sales tax percentage: ");
//double salesTax = keybd.nextDouble();
double totalTax=0.0;
double total=0.0;
for(int indexc=0; indexc < costArray.length; indexc++){
System.out.println("Enter the item cost: ");
double cost = Double.valueOf(keybd.next()).doubleValue();
totalTax = totalTax + (cost * anyValue);
total = total + cost;
}
System.out.println("Total tax: " + totalTax);
System.out.println("Total cost pre-tax: " + total);
System.out.println("Total cost including tax: " + (total+totalTax));
}
}
答案 0 :(得分:0)
我认为你想要的是一个模型和一个控制器。你的控制器会有处理输入的方法。
public class InputController {
public int getCost() { ... }
public void promptUser() { ... }
}
您的模型将是一个有成本和税收的项目。
public class TaxableItem {
private int costInCents;
private int taxInCents;
public int getTotal();
public int getTaxInCents() { ... }
public void setTaxInCents( int cents ) { ... }
public int getCostInCents() { ... }
public void setCostInCents( int cents ) { ... }
}
然后在main方法中,您将创建一个TaxableItem对象数组,每个用户输入一个。你也可以创建一个Receipt类来为你做很多事情,这样会更好。
答案 1 :(得分:0)
你的代码很混乱 - 变量名称令人困惑,评论中有一些代码,循环中不必要的拆箱......
如果你想获取一个Double数组并将数组的每个值乘以一些常量,那么使用Iterator在next()方法中为你做一些自定义List类怎么样? ?迭代整个集合时,数字会成倍增加,原始值保持不变。
您的Input类将只收集输入列表中的输入,您将使用它来创建列表,并在Output类中循环并打印结果。您还可以创建输入和输出接口并实现它们 - 更灵活。