Java的:调用在main()方法的静态方法(Java: Calling a static meth

2019-09-01 06:03发布

我应该做到以下几点:

写了一个名为静态方法generateEmployees()的Java应用程序(客户端)的程序,返回10种不同类型的Employee对象的随机列表。 你既可以使用数组或一个ArrayList存储将被返回的Employee对象。 使用for循环与一些随机数据填充随机不同类型员工的对象。 你可能想的范围样1值 - 4.如果随机值是1,创建一个HourlyEmployee对象,具有一些随机生成的数据,如果2,SalariedEmployee对象,具有一些随机数据等。 我将它留给你的聪明才智生成和填充这些不同的Employee对象。 由于这些对象产生它们添加到您的数据结构(数组或ArrayList的您正在使用)。 最后,该方法返回该数据结构。

在相同的应用程序类,实现主()方法。 调用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;
}

我怎么会调用这个方法,并在main()方法使用它呢? 每个这四个类型的员工是Employee类的子类,每个子类都有自己的toString()方法,这是我belivee我应该被输出。

Answer 1:

的静态方法是一个类方法,而不是一个实例方法。 这就是所谓的类,而不是类的实例。 所不同的是,你可以调用一个静态方法,而不必首先一个实例。

Employee.doSomething();

VS

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

所以,如果你的generateEmployees()方法是在同一个班作为主,所有你需要的是

 generateEmployees();

否则,你需要做的

 Employee.generateEmployees();

(如果Employee类包含generateEmployees()



Answer 2:

如果该方法是在同一个班,你应该能够调用它像任何其他方法:

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

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

由于maingenerateEmployees都是静态的,它应该工作。 (如果generateEmployees是非静态的,你需要首先创建类的实例)。

我建议有字符串常量数组,在它的“名字”,并使用随机数生成索引。 这应该帮助随机化的名字一点。



Answer 3:

这是一个静态方法,所以......它并不需要被实例化对象的上下文中访问。 你可以只是,你知道,从你的公共静态无效的主要(...)方法调用它。 如果包含您的main()方法的类名为雇员,然后...

Employee.generateEmployees(); 

会做的伎俩。



Answer 4:

如灰烬说,但如果你需要处理的记录,这里是没有理由引入额外的变量只是做

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

 }


文章来源: Java: Calling a static method in the main() method