Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的对象中是否需要对象?需要跟踪阵列中的多个事物。_Java_Arrays_Object_Methods - Fatal编程技术网

java中的对象中是否需要对象?需要跟踪阵列中的多个事物。

java中的对象中是否需要对象?需要跟踪阵列中的多个事物。,java,arrays,object,methods,Java,Arrays,Object,Methods,好吧,我有一个方法可以得到一个工人的名字和工资。。 在我的类定义中,它创建了一个对象,不管他们输入什么、名称还是名称和工资 因此,对于每个员工,我都需要索要小费(可能有多个客户向我提供小费)。我在另一种方法中有这样的方法,我会提示输入提示,但我不确定如何只将提示添加到特定的工作人员。。即,当我运行程序时,第一个工人的输出是正确的(工资、小费、平均小费),如果我添加另一个工人,小费是错误的,因为它没有分开,而是继续添加每个工人的所有小费 private static void addWorker(

好吧,我有一个方法可以得到一个工人的名字和工资。。 在我的类定义中,它创建了一个对象,不管他们输入什么、名称还是名称和工资

因此,对于每个员工,我都需要索要小费(可能有多个客户向我提供小费)。我在另一种方法中有这样的方法,我会提示输入提示,但我不确定如何只将提示添加到特定的工作人员。。即,当我运行程序时,第一个工人的输出是正确的(工资、小费、平均小费),如果我添加另一个工人,小费是错误的,因为它没有分开,而是继续添加每个工人的所有小费

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);
}

尝试在do循环结束时将tip重置回0,这样它就可以接受一个新值,而无需添加以前的值

tip = 0;

或者您可以创建一个tip数组并将每个tip值存储在数组中

您应该使用适当的实例变量创建一个名为worker的类

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;
}
}

下面是我如何处理你们的班级结构

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.
}
私有静态类工作程序{
私有字符串名称;
私人双倍工资;
私人双尖=0;
工人(字符串名称,双倍工资){
this.name=名称;
工资=工资;
}
公共字符串getName(){
返回名称;
}
公共双倍工资(){
返回工资;
}
公共无效添加提示(双提示){
this.tip+=tip;
}
公共双getTipe(){
退回这个.tip;
}
}
//使用辅助进程的集合,而不是数组。
private List workers=new ArrayList();
公共无效addWorker(){
String name=JOptionPane.showInputDialog(“名称?”);
double wage=double.parseDouble(JOptionPane
.showInputDialog(空,“工资?”);
工人=新工人(姓名、工资);
double-tip=double.parseDouble(JOptionPane
.showInputDialog(空,“提示?”);
worker.addTip(tip);
workers.add(worker);//将worker添加到列表中。
}

addWorkerTip应将worker作为参数接收。或者addWorkerTip应该是worker的一种方法。