2014-03-03 88 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. 
}