在循环体中创建新对象

时间:2014-03-01 20:16:59

标签: java object for-loop

我正在尝试编写一个非常基本的java程序,该程序将允许用户输入有关某些员工的信息。我想到的是一个for循环,它将创建一个单独的Employee对象(已定义的Employee类),然后在整个循环运行后将每个对象保留在内存中。像这样:

      String input = JOptionPane.showInputDialog("How many Employees are we "
         + "entering into the system?");
      int numEmployees = Integer.parseInt(input);

    for (int count = 1; count <= numEmployees; count ++)
    {
    Employee employee(count) = new Employee();
    }

我知道这段代码不起作用;但我希望它清楚地说明我要做的是:循环的每次迭代都会创建一个新对象(employee1,employee2 .... employeeN),然后会有一些代码允许用户输入所需的数据。我已经拥有了所有必要的访问器和mutator方法。循环完成运行后,对象将保留在内存中。 有任何想法吗?谢谢大家!

7 个答案:

答案 0 :(得分:1)

听起来你想要使用数组

Employee[] employees = new Employee[numEmployees];
for(int i = 0; i < numEmployees; i++)
    employees[i] = new Employee();

答案 1 :(得分:0)

尝试将其存储在某个集合中。

     List<Employee> employeList = new ArrayList<Employee>();

     for (int count = 1; count <= numEmployees; count ++)
     {
        employeList.add(new Employee());
     }

或只是在数组中。

         Employee[] employeList = new Employee[numEmployees];

         for (int count = 1; count <= numEmployees; count ++)
         {
            employeList[i]=new Employee();
         }

答案 2 :(得分:0)

您似乎正在尝试创建变量变量名称,这在Java中是不可能的。相反,您应该将您的员工存储在一个数组中。

Employee[] employees = new Employee[numEmployees];

要将员工添加到阵列,您可以执行此操作

employees[count] = new Employee();

答案 3 :(得分:0)

您可以使用数组(在这种情况下很好,因为您已经知道您将拥有多少员工)或ArrayList(动态大小,如果您不知道它将包含多少元素,则会更好)。

Employee[] employees = new Employee[numEmployees];

然后你应该做的每个周期

for (int count = 0; count < numEmployees; count ++)
{
    employees[count] = new Employee();
}

创建新员工并存储它。无论如何,我编辑了你代码的一些部分。

count = 1将为count = 0 因为数组从0开始

count <= numEmployees将为count < numEmployees 从0开始,<=将转到numEmployees,数组大小为numEmployees-1,这意味着数组的“越界”。

答案 4 :(得分:0)

您可以使用java.util.ArrayList来存储Employee对象。您的代码可能如下所示:

package EmployeeStuff; 

import java.util.ArrayList;

// rest of the class code 

ArrayList<Employee> emps = new ArrayList<Employee>();


String input = JOptionPane.showInputDialog("How many Employees are we "
     + "entering into the system?");
  int numEmployees = Integer.parseInt(input);

for (int count = 1; count <= numEmployees; count ++)
{
    emps.add(new Employee()); // add an employee object to the ArrayList 
}

:d

答案 5 :(得分:0)

我认为这就是你要达到的目标。创建一个空的Employees数组,然后在循环内依次分配。你可以在另一个答案中选择一个ArrayList。

String input = JOptionPane.showInputDialog("How many Employees?");
int numEmployees = Integer.parseInt(input);

Employee[] employess = new Employee[numEmployees];
for (int count = 0; count < numEmployees; count ++)
{
    employees[count] = new Employee();
}

答案 6 :(得分:0)

import java.util.*;

public class EmployeeService
{
    public static List<Employee> createEmployees(int numberOfEmployees)
    {
        List<Employee> employees = new ArrayList<Employee>();

        for(int i=0; i<numberOfEmployees;i++)
        {
            Employee e = newEmployee();

            // gather required employee information

            employees.add(e);
        }

        return employees;
    }

    /**
     * Create an in-memory employee object.
     *
     * @return  in-memory employee object
     **/
    public static Employee newEmployee()
    {
        return new Employee();
    }
}

class Employee
{
}