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的一种方法。