0

私はいくつかの基本的な Java プログラミングを行っており、他のクラス コンストラクターにリンクされたコンストラクターを持つクラスを作成する必要があります。たとえば、次のコードを参照してください...

public class Friend {

    private String name;
    private Date dateOfBirth;
    private String phoneNum;

    public Friend(String name){
        this.name=name;
        this.dateOfBirth = null;
    }

    public Date setDOB(Date input){
        return dateOfBirth;
    }
}

public class Date {

    final int MINDAYSINMONTH=1; 
    final int MAXDAYSINMONTH=30;
    final int MINMONTHSINYEAR=1; 
    final int MAXMONTHSINYEAR=12;
    private int day;
    private int month;
    private int year;

    //constructor
    public Date(int day, int month, int year){
        this.day=day;
        this.month=month;
        this.year=year;
    }
}

新しい を作成してから、クラス内の値をFriend変更しようとしています...dateOfBirthFriend

Friend trial = new Friend(input);
trial.setDOB(new Date(2, 15, 1991));

しかし、私の出力は、新しいものを作成したが、上記で指定した値に変更されていないことを示唆していFriendますdateOfBirth。誰かが私が間違っていることを理解するのを手伝ってくれませんか。

4

3 に答える 3

1

setDOBメソッドは値のみを返すため

 public Date setDOB(Date input){
    return dateOfBirth;
}

どこで何かを設定していますか?そのメソッドの名前を変更する必要があります。これは、それが行っていることだからです。値を設定getDOBする適切なメソッドを記述します。public void setDOB

于 2012-05-03T14:24:57.017 に答える
0

あなたのsetDOB方法は間違っています-それは実際には何も設定していません。

これを変更してみてください...

public void setDOB(Date input){
    this.dateOfBirth = input;
}

設定後に値を確認できるように、おそらくgetterメソッドも必要です...

public Date getDOB(){
    return dateOfBirth;
}
于 2012-05-03T14:25:35.480 に答える
0

手がかり:あなたのセッターはゲッターになります。

于 2012-05-03T14:26:12.833 に答える