java:在main()方法中调用静态方法

v1uwarro  于 2021-07-09  发布在  Java
关注(0)|答案(4)|浏览(467)

我应该做以下工作:
使用名为generateeemployees()的静态方法编写java应用程序(客户机)程序,该方法返回10种不同类型的employee对象的随机列表。您可以使用数组或arraylist来存储将返回的employee对象。使用for循环用一些随机数据随机填充不同类型的employee对象。你可能会想到一系列的值,比如1-4。如果random值为1,则使用一些随机生成的数据创建hourlyemployee对象,如果为2,则使用一些随机数据创建salariedemployee对象,依此类推。我将把生成和填充这些不同的employee对象的工作留给您自己。在生成这些对象时,将它们添加到您的数据结构(您正在使用的数组或arraylist)。最后,该方法返回这个数据结构。
在同一个应用程序类中,实现main()方法。调用generateeEmployees()静态方法,并使用for循环在终端窗口上打印每个员工的详细信息以及他们的收入。
我的generateeEmployees()静态方法如下(可能不正确。。。而且,数据并不是随机生成的,因为我不确定该怎么做,至少就名字和姓氏而言是这样。):

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

如何调用此方法并在main()方法中使用它?这四种类型的employee都是employee类的子类,每个子类都有自己的tostring()方法,我认为应该输出这个方法。

3bygqnnd

3bygqnnd1#

如果方法在同一个类中,您应该能够像调用任何其他方法一样调用它:

public static void main(String[] args)
{
    Employee[] employees = generateEmployees();

    // TODO: loop through and print out...
}

main 以及 generateEmployees 都是静态的,应该能用(如果 generateEmployees 如果是非静态的,则需要先创建类的示例)。
我建议使用一个包含“names”的常量字符串数组,并使用一个随机数来生成索引。这应该有助于随机命名一点。

kfgdxczn

kfgdxczn2#

静态方法是类方法,而不是示例方法。它是在类上调用的,而不是类的示例。不同之处在于,您可以调用静态方法,而无需先调用示例。

Employee.doSomething();

Employee employee = new Employee();
employee.doSomethingElse();

因此,如果generateeEmployees()方法与main方法在同一个类中,则只需

generateEmployees();

否则你就得这么做

Employee.generateEmployees();

(如果employee类包含generateemployees()

vxbzzdmp

vxbzzdmp3#

如ash所述,但是如果您需要处理记录,这里没有理由引入额外的变量

public static void main(String[] args)
 {
      for(Employee employee: generateEmployees())
         print(employee); // define static print somewhere too

 }
6bc51xsx

6bc51xsx4#

这是一个静态方法,所以。。。它不需要在示例化对象的上下文中访问。你可以从你的公共静态voidmain(…)方法调用它。如果包含main()方法的类名为employee,那么。。。

Employee.generateEmployees();

会成功的。

相关问题