0

コンストラクターでオブジェクトを使用しようとしています。オブジェクトは私の Date クラスです。よくわかりませんが、インターフェイスを使用することになっていると思います。

public class Date {

private int day;
private int month;
private int year;

public Date(int day, int month, int year) {
    this.year = year;
    checkMonth(month);
    checkDay(day);
}

public void checkMonth(int monthIn)
{
    if(monthIn < 1 || monthIn > 12)
    {
        System.out.print("the month is invalid");
    }
    else
    {
        month = monthIn;
    }
}
public void checkDay(int dayIn)
{
    if(dayIn < 1 || dayIn > 31)
    {
        System.out.print("the day is invalid and has been set to 1");
        day = 1;
    }
    else
    {
        day = dayIn;
    }
}

public int getDay()
{
    return day;
}
public int getMonth()
{
    return month;
}
public int getYear()
{
    return year;
}

public String toString()
{
    return "birth date: " + getDay() + "/" + getMonth() + "/" + getYear();
}
}

および Employee クラス(最後の public void add() は試行錯誤であり、そこにあるべきかどうかはわかりません)

public abstract class Employee {

private String fName;
private String lName;
private int rsiNumber;
private Date DOB;

public Employee(String fName, String lName, int rsiNumber, Date DOB)
{
    this.fName = fName;
    this.lName = lName;
    this.rsiNumber = rsiNumber;
    this.DOB = DOB;
}

public String getFName()
{
    return fName;
}
public String getLanme()
{
    return lName;
}
public int getRsiNumber()
{
    return rsiNumber;
}
public Date getDOB()
{
    return DOB;
}

public void setFName(String fNameIn)
{
    fName = fNameIn;
}
public void setLName(String lNameIn)
{
    lName = lNameIn;
}
public void setRsiNumber(int rsiNumIn)
{
    rsiNumber = rsiNumIn;
}
public void setDOB(Date DOBIn)
{
    DOB = DOBIn;
}

public String toString()
{
    return null;
}
public void add(Date x)
{
    DOB  = x;
}
}

Employee の他のいくつかのサブクラスとともに。Employee のコンストラクターで Date をオブジェクトとして使用しようとしていますが、Test クラスを作成すると、コンストラクターが定義されていないというエラーが表示されます。

私はここ数日間大学から病気で、これを機能させる方法がわかりません。

これは私のテストです

public class Test {

public static void main(String [] args)
{

    Employee employees[] ={
            new Salaried("Joe", "Bloggs", "R5457998", 6, 15, 1944, 800.00 ),
            new Hourly( "Kate", "Wyse", "S6657998", 10, 29, 1960, 16.75, 40 ),
            new Commission("Jim", "Slowe", "K5655998", 9, 8, 1954, 10000, .06 )};



}
}
4

4 に答える 4

0

コンポジションを使用すれば、あなたの問題は解決します。メインで Date オブジェクトを作成する必要があります。

    {  Employee employees[] ={
        new Salaried("Joe", "Bloggs", "R5457998",new Date( 6, 15, 1944), 800.00 ),
        new Hourly( "Kate", "Wyse", "S6657998",,new Date (10, 29, 1960), 16.75, 40 ),
        new Commission("Jim", "Slowe", "K5655998",,new Date( 9, 8, 1954), 10000, .06 )};}
于 2013-10-30T17:37:06.483 に答える
0
new Hourly( "Kate", "Wyse", "S6657998", new Date(10, 29, 1960), 16.75, 40 ),
于 2013-10-30T17:34:03.987 に答える