• ベストアンサー

問題文の意味が分かりません。

こんにちは。 早速ですが、質問させていただきます。 javaの勉強をしているのですが、タイトル通り問題文の意味が分かりません。 問題文 Ex44の課題ではメソッドのオーバーロードをしたがこれをコンストラクタにしなさい。 (クラスはPersonとする)オブジェクトはa1,b1,a2,b2,a3,b3として作成する。 a1を作成するときに、"Tom"を引数とする b1を作成するときに、"Bill"を引数とする a2を作成するときに、50.5を引数とする Ex44の課題 class Person2{ private String name; private double weight; public void SetPerson(){ name = "未設定"; weight = 0.0; } public void SetPerson(String n){ name = n; weight = 0.0; } public void SetPerson(String n, double w){ name = n; weight = w; } public void show(){ System.out.println("nameは、" + name + "です。weightは" + weight + "です。"); } } class Ex44{ public static void main(String args[]){ Person2 person1 = new Person2(); person1.SetPerson(); person1.show(); person1.SetPerson("田中"); person1.show(); person1.SetPerson("田村", 60.0); person1.show(); } } コンストラクタの意味自体は分かっているのですが、 a1,b1,a2,b2,a3,b3というところと a1を作成するとき、"Tom"を引数とする b1を… a2を… というところがいまいち何を言っているのか分かりません。 どなたか分かりますでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mikaemi
  • ベストアンサー率50% (33/65)
回答No.2

たぶん、  public Person()  public Person(String)  public Person(String, double) という引数を持つコンストラクタを定義して、 それらを使って  a1 = new Person("Tom");  b1 = new Person("Bill");  a2 = new Person("", 50.5); などとしなさい。って意味ではないですかね?^^ public Person(double) のシグニチャのコンストラクタも 定義するのかな?

noname#39315
質問者

お礼

早速のご回答ありがとうございました。 問題文のいっていることが理解できない部分が解消できてスッキリしました^^ ご回答ありがとうございました!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

コンストラクタにもメソッドと同じように引数のあるタイプがあり、引数の種類も違います。これをコンストラクタのオーバーロードといいますね。 Person a1 = new Person("Tom"); Person b1 = .... こういうことと思います。

noname#39315
質問者

お礼

早速のご回答ありがとうございました。 やっと理解することができました。 いったいb2,a3,b3は何の必要があるのだろうと悩んでいたのですが 与えられたプリントが2枚組み(1枚目で問題文が切れていた状態) だということに、質問した後気づきました…。 ご回答ありがとうございました^^

すると、全ての回答が全文表示されます。

関連するQ&A