2014-03-03 44 views
0

好吧我有一种方法可以得到工人的名字和工资.. 在我的类定义中我有它在哪里创建一个对象,无论他们输入什么,名称或名称和工资。我是否需要java中的对象内的对象?需要跟踪数组中的多个事物。

因此,然后对于每个工作人员,我需要询问提示(可能有多个客户提示)。我有另一种方法,我提示提示,但我不知道如何只添加提示给特定的工人。当我运行该程序时,输出对于第一个工作人员是正确的(薪水,提示,平均提示),如果我添加另一个工作人员,提示是错误的,因为它不是分开的,而是继续添加每个工作人员的所有提示

private static void addWorker(){ 

    name = JOptionPane.showInputDialog("Name?"); 
    wage = Double.parseDouble(JOptionPane.showInputDialog(null,"Wage?")); 

    worker object = new worker(name, wage); 
    workerArray[count] = object; 

    addWorkerTip(); 

    count++; 
} 

private static void addWorkerTip(){ 
    do{ 
      tip = Double.parseDouble(JOptionPane.showInputDialog(null,"tip?")); 

          numTips++; 
       totalWorkerTips = tip + totalWorkerTips; 
      worker.addTips(totalWorkerTips); 

    }while (JOptionPane.showConfirmDialog(null,"Another Worker?") == JOptionPane.YES_OPTION); 
} 
+0

addWorkerTip应当自收到工人作为一个参数。或者addWorkerTip应该是工作者的一种方法。 –

回答

0

尝试在做循环结束重置尖回0,以便它可以接受新的值不添加前值。

tip = 0; 

,或者你可以创建一个尖端阵列和各尖峰值存储阵列

0

你应该适当的实例变量的一类称之为工作英寸

public class Worker{ 
private String name; 
private double wage; 
private double tip; 

public Worker(){ 
name=null; 
wage=null; 
tip=0; 
} 

public Worker(String n){ 
name=n; 
tip=0; 
} 

public Worker(String n, double w){ 
name = n; 
wage = w; 
tip=0; 
} 

public void setWage(double newWage){ 
wage = newWage; 
} 

public void addTip(double newTip){ 
tip+=newTip; 
} 
} 
0

这是我怎么会接近你的阶级结构,

private static class Worker { 
    private String name; 
    private double wage; 
    private double tip = 0; 

    Worker(String name, double wage) { 
    this.name = name; 
    this.wage = wage; 
    } 
    public String getName() { 
    return name; 
    } 
    public double getWage() { 
    return wage; 
    } 

    public void addTip(double tip) { 
    this.tip += tip; 
    } 
    public double getTipe() { 
    return this.tip; 
    } 
} 

// Use a Collection of Worker(s) - not an array. 
private List<Worker> workers = new ArrayList<Worker>(); 

public void addWorker() { 
    String name = JOptionPane.showInputDialog("Name?"); 
    double wage = Double.parseDouble(JOptionPane 
     .showInputDialog(null, "Wage?")); 

    Worker worker = new Worker(name, wage); 
    double tip = Double.parseDouble(JOptionPane 
     .showInputDialog(null, "tip?")); 
    worker.addTip(tip); 
    workers.add(worker); // Add the worker to the List. 
}