改变构造函数java中的数据

时间:2012-05-03 14:22:46

标签: java constructor

我正在做一些基本的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,然后更改dateOfBirth类中的Friend值,就像这样......

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

但是我的输出表明我创建了一个新的Friend,但dateOfBirth没有更改为我上面提供的值。有人可以帮我理解我做错了什么。

3 个答案:

答案 0 :(得分:1)

因为setDOB方法只返回值

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

它在哪里设置任何东西?您应该重命名该方法getDOB,因为这就是它正在做的事情,并编写一个设置值的正确public void setDOB

答案 1 :(得分:0)

您的setDOB方法错误 - 实际上并没有设置任何内容。

尝试更改此内容......

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

您可能还应该使用getter方法,以便在设置后检查值...

public Date getDOB(){
    return dateOfBirth;
}

答案 2 :(得分:0)

线索:你的二传手将自己当作吸气剂。