2015-09-05 107 views
0

我在写一个java类,它借用了另一个类的元素,并且需要传递构造函数的四个参数中的三个来初始化其他类对象。不过,我失去了如何初始化它。任何帮助深表感谢。这就是我现在所拥有的:传递构造函数参数以初始化对象

private String name; 
    private MyDate birthday; 

    /** 
    * Constructs a new Person object. 
    */ 
    public Person(String name, int month, int day, int year) { 
     this.birthday = birthday(month, day, year); 
     this.name = name; 

    } 
+7

看起来像你想'this.birthday = new MyDate(month,day,year);' - 这就是你如何调用构造函数。 (顺便说一下,我强烈建议你将这些参数重新排序为年,月,日 - 涉及两个班级。) –

+0

我想我尝试过除了那个之外的每种组合。哈哈谢谢! – Kevin

回答

0

这将取决于生日类是否被通过某种方式连接(延长或friended),或者如果birthday.birthday场是公开访问。

例如,如果你想跟上良好的做法。你可以设置一个 GetBirthday();方法在生日课堂内,并执行以下操作。

private MyDate birthdate; 


public Person(String name, int month, int day, int year) { 
    birthday bDay = new birthday(month, day, year); 
    this.birthdate = bDay.GetBirthday(); 
    this.name = name; 

} 

您还可以创建一个内联函数的生日(),计算生日,但我不会建议做这样。

+2

我不清楚生日课有什么必要(这当然不会叫'生日',并且不会有'GetBirthday',IMO的方法] - 请参阅我的评论。在我看来,所有需要的是调用MyDate构造函数。 –