Java 如何创建带有数组的类,然后将值传递给程序?

Java 如何创建带有数组的类,然后将值传递给程序?,java,Java,我的课堂作业是这样的: “编写使用以下数组作为字段的Payroll类: employeeID—一个包含七个整数的数组,用于保存员工标识号。 应使用以下数字初始化阵列: 5658845 4520125 7895122 8777541 8451277 1302850 7580489 小时数-由七个整数组成的数组,用于保存每个员工的工作小时数 工资率-七个双倍数组,用于保持每个员工的小时工资率 工资-七个双倍数组,用于保存每个员工的总工资 类应该通过下标关联每个数组中的数据。 例如,小时数组元素0

我的课堂作业是这样的: “编写使用以下数组作为字段的Payroll类:

  • employeeID—一个包含七个整数的数组,用于保存员工标识号。 应使用以下数字初始化阵列: 5658845 4520125 7895122 8777541 8451277 1302850 7580489
  • 小时数-由七个整数组成的数组,用于保存每个员工的工作小时数
  • 工资率-七个双倍数组,用于保持每个员工的小时工资率
  • 工资-七个双倍数组,用于保存每个员工的总工资
类应该通过下标关联每个数组中的数据。 例如,小时数组元素0中的数字应该是员工工作的小时数 其标识号存储在employeeID数组的元素0中。 该员工的工资率应存储在工资率数组的元素0中。 除了适当的存取器和变异器方法, 该类应该有一个接受员工标识号的方法 作为参数,返回该员工的总工资

我无法从我创建的程序中传递值。下面是类:

public class moduleArray2
{
   final int NUM_EMPLOYEES = 7;
   int[] employeeID = {5658845, 4520125, 7895122, 8777541, 8451277, 1302850, 7580489};
   int[] hours = new int[NUM_EMPLOYEES];
   double[] payRate = new double[NUM_EMPLOYEES];
   double[] wages = new double[NUM_EMPLOYEES];
   int employee = 0;
   double wage = 0;


   // setHours method
   public void setHours(int[] time)
   {
      time = hours;

   }

   // setPayRate method
   public void setPayRate(double[] pay)
   {
      pay = payRate;

   }

    // setWages method
   public void setWage(int[] time, int[] pay)
   {
      for (int index = 0; index < NUM_EMPLOYEES; index++)
         wages[index] = time[index] * pay[index];

   }

   //getEmployeeID method
   public int getEmployeeID(int index)
   {

      return employee;

   }   

   // getWage method
   public double getWage(int index)
   {


      return wage;

   }

}   
公共类模块array2
{
最终雇员人数=7人;
int[]employeeID={56588454452012578951228777541845127713028507580489};
int[]小时=新的int[NUM_员工];
double[]工资率=新的double[NUM_EMPLOYEES];
double[]工资=新的double[NUM_员工];
int employee=0;
双倍工资=0;
//设定小时数法
公共无效设置小时数(int[]时间)
{
时间=小时;
}
//固定工资率法
公共无效支付率(双倍[]支付)
{
工资=工资率;
}
//固定工资法
公共无效设置工资(整数[]时间,整数[]支付)
{
对于(int index=0;index
该程序应该显示每个员工的编号,并要求用户输入该员工的工时和工资率。然后,它应该显示每个员工的身份证号码和总工资。当我运行该程序时,它只是将所有内容都列为零值,包括员工ID号

import java.util.Scanner;

public class moduleArrayDemo2
{
   public static void main(String[] args)
   {
      final int NUM_EMPLOYEES = 7;
      int[] time = new int[NUM_EMPLOYEES];
      double[] pay = new double[NUM_EMPLOYEES];

      // Create new Scanner object
      Scanner keyboard = new Scanner(System.in);

      // Create employee object
      moduleArray2[] employee = new moduleArray2[NUM_EMPLOYEES];

      // A loop that creates objects for each element
      for (int i = 0; i < employee.length; i++)
         employee[i] = new moduleArray2();


      for (int i = 0; i < employee.length; i++)
      {
         System.out.print("Enter hours for Employee #" + employee[i].getEmployeeID(i) +
                           ": ");
         time[i] = keyboard.nextInt();
         employee[i].setHours(time);

         System.out.print("Enter how much Employee #" + employee[i].getEmployeeID(i) +
                          " makes per hour: ");
         pay[i] = keyboard.nextDouble();
         employee[i].setPayRate(pay);

      }

      for (int i = 0; i < employee.length; i++)
      {
         System.out.println("Employee #" + employee[i].getEmployeeID(i) + 
                            " Wages: " + employee[i].getWage(i));

      }    

   }

 }
import java.util.Scanner;
公共类模块RAYDEMO2
{
公共静态void main(字符串[]args)
{
最终雇员人数=7人;
int[]时间=新的int[NUM_员工];
double[]工资=新的double[NUM_员工];
//创建新的扫描仪对象
扫描仪键盘=新扫描仪(System.in);
//创建员工对象
moduleArray2[]员工=新的moduleArray2[NUM_员工];
//为每个元素创建对象的循环
for(int i=0;i

我可以在一个简单的程序中创建数组,我可以用创建这些类的实例的程序来创建类。类中的数组…我感觉完全迷失了。我如何引用类中的数组来获取程序本身的值?任何反馈或建议都将不胜感激!

首先,您弄乱了访问器方法的参数、其实际值和访问的对象

class ModuleArray2
    int[] employeeID = {5658845, 4520125, 7895122, 8777541, 8451277, 1302850, 7580489};
    int NUM_EMPLOYEES = employeeID.length; // I assume you've got it defined somewhere

    int[] hours = new int[NUM_EMPLOYEES];
    double[] payRate = new double[NUM_EMPLOYEES];
    double[] wages = new double[NUM_EMPLOYEES];

    // setHours method - will reassign the whole array of `hours` with the provided argument `time` ; I'm leaving this method with a signature that you have provided just to have a place to put my comment on it
    public void setHours(int[] time) {
        hours = time;
        // time = hours; // this is wrong - it would assign class field value to the temporary argument variable `time`, and then just throw it away (since `time` in this scope is temporary)
    }

    // setHours method - will set working hours in one of an array `hours` elements specified by the provided index - number of an employee it refers to
    public void setHours(int employeeNumber, int workedHours) {
        hours[employeeNumber] = workedHours;
    }

    // setPayRate method - same as above
    public void setPayRate(int employeeNumber, double payRate) {
        payRates[employeeNumber] = payRate;
    }

    // setWage method - same as above
    public void setWage(int employeeNumber, double wage) {
        wages[employeeNumber] = wage;
    }

    // getWage method - will return the wage for employee given by an index in array number
    public double getWage(int employeeNumber) {
        return wages[employeeNumber];
    }

    //getEmployeeID method - will return an ID of employee given by an index in array number
    public int getEmployeeID(int employeeNumber) {
        return employeeID[employeeNumber];
    }

    //getEmployeeIndexFromID method - will return the index of employee given by his ID number - this is inverse function of the function 'getEmployeeID'
    public int getEmployeeIndexFromID(int employeeID) {
        int index;
        // search implementation goes here
        // you should try to write it on your own
        return index;
    }
}

根据Tax程序,将total变量更改为一个数组,该数组接受来自用户的5个双倍值,然后将其传递给Tax方法,以获得总计的税额。

您的设置器是向后的。您有
时间=小时;
它将设置方法变量
时间
(在执行该方法后不再存在)设置为
hours
字段的值。您希望执行相反的操作:将字段
hours
设置为
time
变量的值(您传递给方法的内容)。酷。我继续切换了它们,但创建列表时程序仍将所有内容读取为零值:for(inti=0;i?你不能创建一个包含ID、小时数、工资率和工资字段的Employee类吗?我简直不敢相信。我知道,对吧?我成功地创建了这个类,但是这个类中的数组超出了我的理解范围。为什么老师们不阅读about软件设计?很明显,需要解决的问题是创建一个包含employeeID、hour、…字段的Employee类,并使用列表(在大多数情况下比数组好得多)。良好的实践应该从一开始就学习。