2011-11-01 6 views
0

説明:このクラスの特別なインスタンスを返すPersonの静的メソッドcreateAdultを記述します。インスタンスは、一般的な大人を表し、「大人」の名前を持ち、21歳この静的メソッドを正しく設定していますか?

人は、クラス名 名が文字列変数プライベート 年齢では、これは何であるint型変数のプライベート

です作成された、これはすべてそれが求めているのですか?それは私が提供した以上のものを求めていますか?

public static void createAdult(String name, int age) 
{ 
    name = "An Adult"; 
    age = 21; 
} 

答えて

2

あなたの質問の状態の最初の行としていいえ、あなたはそれを返し、その後、それにそれらの値を割り当て、その後、(newキーワードを使用して)クラスのインスタンスを作成する必要があります。

、のようなもの、あなたがやりたいだろう Personのコンストラクタがあるだろうほとんどの

:あなたはしない限り、オブジェクトのフィールドを設定することはできませんので、静的メソッドは、インスタンスに接続されていない

Person newPerson = new Person ("paxdiablo", 46)'; // A rare admission :-) 

一つ作る。

This pageは、オブジェクトのインスタンス化をカバーします。 This pageは、ここでやろうとしているファクトリメソッドをカバーしています。「ファクトリ」は、必要に応じてオブジェクトを構築し、自分で作成したのとは別のものを返すことができるデバイスです。あなたは上記の、第2のリンクを見れば

たとえば、あなたが見つけることができます:

public static ComplexNumber valueOf (float aReal, float aImaginary) { 
    return new ComplexNumber (aReal, aImaginary); 
} 

を。これは、古典的なファクトリメソッド、あなたが呼び出すことができる静的関数です:

ComplexNumber c = ComplexNumber.valueOf (0, 1); // sqrt(-1) 

それはあなたの仕様にオブジェクトを作成します。

+0

いい方法でクラスであることとはなりません代わりにインスタンスを作成し、名前/年齢のコンストラクタ値を設定しようとしているものと同じにします。 – Renuz

+0

はい、@ Burninfate、それは正しいです。オブジェクトを仕様にインスタンス化し、それを返す。古典的な工場です。 – paxdiablo

+0

さて、私はそれらを見ています – Renuz

4

私はあなたのホーワークを終わらせるのを助けることができませんので、説明しようとしましょう。

要件は次のとおりです。 -

  • リターンこのクラスの特別なインスタンス。 あなたのメソッドは何を返すのですか? voidを宣言すると、メソッドが何も返さないことを意味します。

  • インスタンスは名前と年齢を表しているため、静的メソッドでそのクラスのインスタンスを返す必要があります。これらの値を使用して新しいインスタンスを作成します。

0

コードが唯一のものであれば、私たちに提供したものであり、それは機能しません。あなたのコードで名前と年齢に割り当てることはできません。

0
  • メソッドcreateAdultは、クラスのインスタンスのみを返す必要があります。ボイド
  • あなたは
  • 名は何も返さないだろうし、年齢は私はそれを持っているように私はそれを手動で設定することはできませんので、代わりに私が作成する必要があり
関連する問題