2012-05-03 9 views
0

他のクラスのコンストラクタにリンクされたコンストラクタを持つクラスを作成する必要がある、基本的なJavaプログラミングを行っています。例えば、私はそう...コンストラクタ内のデータを変更するjava

Friend trial = new Friend(input); 
trial.setDOB(new Date(2, 15, 1991)); 
のように、 Friendクラス内にある dateOfBirth値を変更し、その後、新しい Friendを作成しようとしています私の次のコード...

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は上記の値に変更されませんでした。誰かが私が間違っていることを理解するのを助けてくれますか?

+0

セッターコードをもう一度お読みください。この設定者のdateOfBirthフィールドに何かを割り当てていますか?なぜそれは何を返すのですか? –

答えて

0

setDOBの方法は間違っています。実際には何も設定していません。

それは...

public Date getDOB(){ 
    return dateOfBirth; 
} 
+0

-1、宿題に関する答えは非生産的です。答えに導きなさい。 – hvgotcodes

+1

私はこの点で違うことを懇願します - 私はいつもJavaを学ぶ最も良い方法は他の人のコードを研究することであることを発見しました。正しく動作する他の人のコードがある場合は、それを調べてそれがなぜ機能するかを調べ、それから学ぶことができます。少なくともそれが私が最高だと思うものです。その上、簡単なセッター/ゲッターメソッドのために、それは何も与えられません。 – wattostudios

+0

hvgotcodesとsp00mから最初の2つを読んだ後で、3つの返信のすべてが私を助けました。私はすでに答えを得ていました。そしてWATTOの答えを読んで、私はそれが正しいかどうかを知る助けになります。ヒントや方法を指導する人はどちらも良い方法です。すべての人に感謝しています。今度は私のプログラムを最後に終えることができます。 – Liquified

1

あなたはsetDOBメソッドは値のみ、それは何も設定されて

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

を返すため?その方法getDOBの名前を変更する必要があります。これは、その値を設定する適切なpublic void setDOBを作成することです。

0

手がかりに設定された後、あなたが値を確認することができますので、あなたはおそらくもgetterメソッドを持っている必要があります...これを変更する

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

を試してみてください:あなたのセッターをゲッターのために自分自身を取る。

関連する問題