2013-07-12 5 views
-1

Ошибка в том, что для TestPayroll не найдено «подходящего конструктора»: Payroll payroll = new Payroll (name, weeksPay); Какой должен быть конструктор, и я предполагаю, что он должен быть в классе Payroll.Почему возникает ошибка «подходящий конструктор не найден»?

Я хочу показать оплату за неделю для Tiny Tim, Brad Pitt и Madonna. Спасибо!

import javax.swing.JOptionPane; 

public class TestPayroll { 

    private String [] name = {"Tiny Tim", "Brad Pitt", "Madonna"}; 
    private double [] payRate = {100.25, 150.50, 124.25}; 
    private double [] hrsWorked = {40, 35, 36}; 
    private double weeksPay; 

    //Payroll object 
    Payroll payroll = new Payroll(name, weeksPay); 


    public static void main(String[] args) { 

    //Display weekly pay 
    JOptionPane.showMessageDialog(null, "%s's pay for the week is: $%.2f\n", payroll[0].getName(), payroll[0].getWeeksPay()); 

    } 

} 

public class Payroll { 

    public static void main(String[] args) { 
     } 

     private String name; 
     private double payRate; 
     private double hrsWorked; 
     private double weeksPay; 

     //default constructor 
     public Payroll() { 
      this.name = name; 
      this.payRate = payRate; 
      this.hrsWorked = hrsWorked; 
      this.weeksPay = weeksPay; 
     } 

     //Payroll constructor 
     public Payroll(String name, double weeksPay) { 
      this.name = name; 
      this.weeksPay = weeksPay; 
     } 

     //return name 
     public String getName() { 
      return name; 
     } 

     //set name 
     public void setName(String name) { 
      this.name = name; 
     } 

     //return pay rate 
     public double getPayRate() { 
      return payRate; 
     } 

     //set pay rate 
     public void setPayRate(double payRate) { 
      this.payRate = payRate; 
     } 

     //return hours worked for the week 
     public double getHrsWorked() { 
      return hrsWorked; 
     } 

     //set hours worked for the week 
     public void setHrsWorked(double hrsWorked) { 
      this.hrsWorked = hrsWorked; 
     } 

     //find week's pay 
     public double getWeeksPay(double weeksPay) { 
      double weeksPay = payRate * hrsWorked; 
      return weeksPay; 
     } 

} 
+5

Вы передаете 'String []', и ваш конструктор принимает 'String'. –

ответ

6

У вас есть следующие конструкторы для Payroll

public Payroll(String name, double weeksPay) {/* some code */} 

и

public Payroll() {/* some */} 

и вы передаете String[] в качестве первого аргумента

+0

Как передать String [] как первый arg? – Grafica

+0

@Grafica в классе TestPayroll, переменная 'name' -' String [] name'. –

+0

Так что же это должно быть? – Grafica

1
//Payroll constructor. your argument types is String and double. 
    public Payroll(String name, double weeksPay) { 
     this.name = name; 
     this.weeksPay = weeksPay; 
    } 

Но

//Payroll object 
    Payroll payroll = new Payroll(name, weeksPay); // you are using String[] array and double as in put arguments. 
Смежные вопросы