0

わかりました、この Web サイトの多くのフォーラムを調べましたが、問題が見つかりません。「シンボルが見つかりません」というエラーが表示され続け、EmployeeTest アプリの「new」の「n」を指しています。これが私のコードです:

最初のファイル:

import java.util.Scanner;

public class Employee

{

    private String fName;
    private String lName;
    private Double mSalary;

    public Employee( String first, String last, Double mth)
    {
        fName = first;
        lName = last;
        if ( mth > 0.00 )
            mSalary = mth;

        if ( mth < 0.00 )
            mSalary = 0.00;
    }

    public void setFName( String first )
    {
        fName = first;
    }

    public void setLName( String last )
    {
        lName = last;
    }

    public void setMSalary( Double mth )
    {
        mSalary = mth;
    }

    public String getFName()
    {
        return fName;
    }

    public String getLName()
    {
        return lName;
    }

    public Double getMSalary()
    {
        return mSalary;
    }

    public void displayMessage()
    {
        System.out.printf( "%s %s has a monthly salary of $%.2f\n",
            getFName(),
            getLName(),
            getMSalary() );
    }
}

2 番目のファイル:

public class EmployeeTest

{

    public static void main( String[] args )
        {
            Employee myEmployee = new Employee( 
                "Fred", "Rogers", "10" );

            System.out.printf( "Employee's first name is: %s\n",
                myEmployee.getFName() );
            System.out.printf( "\nEmployee's last name is: %s\n",
                myEmployee.getLName() );
            System.out.printf( "\nEmployee's monthly salary is: %d\n",
                myEmployee.getMSalary() );
        }
}

コンストラクターに関係しているように感じますが、何が問題なのかわかりません! 私は自分のコードを何億回も見直したに違いありません!

4

3 に答える 3

3

public Employee( String first, String last, Double mth)コンストラクターとして持っていますが、Employeeオブジェクトをインスタンス化していますnew Employee("Fred", "Rogers", "10");

(string, string, string)このエラーは、引数を取るコンストラクターが見つからないことを示している可能性が最も高いです。

を に変更"10"します10new Employee("Fred", "Rogers", 10);

于 2012-09-02T03:05:51.410 に答える
3

クラスのコンストラクターは次のとおりです。

public Employee( String first, String last, Double mth)

しかし、あなたは呼んでいます

Employee myEmployee = new Employee( "Fred", "Rogers", "10" );

コンストラクターを変更して、String

public Employee( String first, String last, String mth)

または double 値として渡し10.0ます(これはより良い解決策と思われます)。

Employee myEmployee = new Employee( "Fred", "Rogers", 10.0d );
于 2012-09-02T03:06:41.343 に答える
3

変化EmployeeTest

Employee myEmployee = new Employee("Fred", "Rogers", "10" );

に:

Employee myEmployee = new Employee( "Fred", "Rogers", 10d );

と:

System.out.printf( "\nEmployee's monthly salary is: %d\n", myEmployee.getMSalary() );

に:

System.out.printf( "\nEmployee's monthly salary is: %f\n", myEmployee.getMSalary() );
于 2012-09-02T03:07:37.227 に答える