1. ホーム
  2. java

[解決済み] 適切なコンストラクタが見つかりません」というエラーが発生するのですが?

2022-02-15 19:05:27

質問

この文でTestPayrollのための"適切なコンストラクタが見つからない"というエラーです。 Payroll payroll = new Payroll(name, weeksPay); コンストラクタはどのようなものであるべきでしょうか。また、それはPayrollクラスにあるべきものだと思います。

タイニーティム、ブラッドピット、マドンナの一週間の給料を表示したいのですが。 ありがとうございました。

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

}

解決方法は?

には、以下のコンストラクタがあります。 Payroll

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

そして

    public Payroll() {/* some */}

を渡すと String[] を第一引数として