打印语句与数组中的每个对象Java

问题描述:

我似乎无法让每个对象在增强for循环中打印。任何援助将不胜感激。如果我选择了一个特定的工作对象,那么代码将运行良好,但我只是将其作为worker []。fullName()而没有任何内容正在打印。有什么办法可以让它在每次循环循环时打印相应的工人?谢谢打印语句与数组中的每个对象Java

package Persons; 

public class InheritanceTest { 
    public static void main(String[] args) { 
     Workers worker[] = new Workers[6]; 
     worker[0] = new Workers(25,"Tom", "Atkins", "4", "Mr.", 1992); 
     worker[1] = new Workers(28,"John", "Smith", "5", "Mr.", 1993); 
     worker[2] = new Workers(30,"Joe", "Doe", "6", "Mr.", 1980); 
     worker[3] = new SalaryWorker(50000,"Fawn", "Dawn", "7", "Mrs.", 1994); 
     worker[4] = new SalaryWorker(55000,"Clarence", "West", "8", "Mr.", 1986); 
     worker[5] = new SalaryWorker(60000,"Lucy", "Adams", "9", "Ms.", 1979); 

     for (Workers workers: worker){ 
      System.out.println("Week 1 pay period: "+ worker[].fullName()); 
      workers.calculateWeeklyPay(40); 
      System.out.println("Week 2 pay period: "); 
      workers.calculateWeeklyPay(50); 
      System.out.println("Week 3 pay period: "); 
      workers.calculateWeeklyPay(40);    
     }   
    } 
} 
+0

您需要使用'worker.fullName()' –

+0

@ChetanRanpariya我得到一个无法找到符号错误 –

+0

类/变量的全名()方法混淆地命名(与复数)。它应该是当前代码的'workers.fullName()'。然而,_correct_要做的事情是以单数形式(即“工作者”)拥有类名(超类)。而数组变量的名称是复数,即'Worker [] workers'。然后循环变成“(工人工:工人)”。 –

认为在for-each循环中命名有麻烦。您已互换worker & workers。 也worker[].fullName()是不可接受的建设。正确的是worker.fullName() 请尝试下面的代码:

for (Workers worker : workers) { 
     System.out.println("Week 1 pay period: " + worker.fullName()); 
     worker.calculateWeeklyPay(40); 
     System.out.println("Week 2 pay period: "); 
     worker.calculateWeeklyPay(50); 
     System.out.println("Week 3 pay period: "); 
     worker.calculateWeeklyPay(40); 
} 
+0

该数组的名称是'worker',所以这不会被编译。 –