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

线索:你的 setter 把自己当成一个 getter。

于 2012-05-03T14:26:12.833 回答