我应该做以下事情:
编写一个Java应用程序(客户端)程序,它具有一个称为generateEmployees()的静态方法,该方法返回10种不同类型的Employee对象的随机列表。您可以使用数组或ArrayList存储将返回的雇员对象。使用for循环随机填充不同类型的员工对象并添加一些随机数据。您可能会考虑1-4个值范围。如果随机值是1,则创建一个带有一些随机生成数据的HourlyEmployee对象;如果是2,则创建一个带有一些随机数据的SalariedEmployee对象,依此类推。我会让你自己想出如何生成和填充这些不同的Employee对象。在生成这些对象时,将它们添加到您正在使用的数据结构(数组或ArrayList)中。最后,该方法返回此数据结构。
在同一应用程序类中,实现main()方法。调用generateEmployees()静态方法,并使用for循环在终端窗口上打印每个雇员的详细信息及其收入。
我的generateEmployees()静态方法如下所示(可能不正确...而且数据还没有被随机生成,因为我不确定如何随机生成名字和姓氏):
编写一个Java应用程序(客户端)程序,它具有一个称为generateEmployees()的静态方法,该方法返回10种不同类型的Employee对象的随机列表。您可以使用数组或ArrayList存储将返回的雇员对象。使用for循环随机填充不同类型的员工对象并添加一些随机数据。您可能会考虑1-4个值范围。如果随机值是1,则创建一个带有一些随机生成数据的HourlyEmployee对象;如果是2,则创建一个带有一些随机数据的SalariedEmployee对象,依此类推。我会让你自己想出如何生成和填充这些不同的Employee对象。在生成这些对象时,将它们添加到您正在使用的数据结构(数组或ArrayList)中。最后,该方法返回此数据结构。
在同一应用程序类中,实现main()方法。调用generateEmployees()静态方法,并使用for循环在终端窗口上打印每个雇员的详细信息及其收入。
我的generateEmployees()静态方法如下所示(可能不正确...而且数据还没有被随机生成,因为我不确定如何随机生成名字和姓氏):
public static Employee[] generateEmployees()
{
Employee[] employees = new Employee[10];
int randomNum = 0;
for (int i = 0; i < 10; i++)
{
Random random = new Random();
randomNum = random.nextInt(4) + 1;
switch (randomNum)
{
case 0:
employees[i] = new SalariedEmployee("Bri", "Gefroh", 123, 1000);
break;
case 1:
employees[i] = new HourlyEmployee("Bri", "Gefroh", 123, 12.50, 10);
break;
case 2:
employees[i] = new CommissionEmployee("Bri", "Gefroh", 123, 10000, 0.05);
break;
case 3:
employees[i] = new BasePlusCommissionEmployee("Bri", "Gefroh", 123, 10000, 0.05, 2500);
break;
}
}
return employees;
}
如何调用这个方法并在主方法中使用它?这四种类型的员工都是Employee类的子类,每个子类都有自己的toStirng()方法,我相信这就是我应该输出的。
Employee.generateEmployees()
,如果它在Employee类中,则只需调用generateEmployees()
。还有第三种选择,即添加静态方法导入语句,请参见文档。 - aakarshpublic static void main(String [] args) { Employee[] employees = new Employee[10]; employees = generateEmployees(); for (int i = 0; i < 10; i++) { System.out.println(employees[i].toString()); } }
- Brittany Gefrohrandom.nextInt(4)
,它会给你一个值[0,3) 0包含 4排除,这落在你的4个情况之内,但是你又加上了1,导致了一个未被考虑的情况case 4:
。一种快速测试方法是通过抛出运行时异常或者在那里添加assert
或者打印语句来处理默认情况,以确保只发生你所期望的情况。同时,在生成输出时,你也可以为employee[i]!=null
添加一个测试。 - aakarsh