• 締切済み

初心者です javaのクラス・フィールドについて

授業の課題なんですけど Person クラスにお父さん father(Man クラス)とお母さん mother(Woman クラス)のフィールドを追加してください。 というものがあってクラスに他のクラスのフィールドを追加するというのはどうゆうことでしょうか? 初心者なのでほとんど何も分からないので分かりやすい回答をお願いします。

みんなの回答

  • bnosuke-x
  • ベストアンサー率39% (43/110)
回答No.5

問題文の解釈の話だと思うのですが、 「年齢 age (int 型)のフィールドを追加してください」 と言ってるのと同じようなことなんではないでしょうか。 人間には父親と母親の2人が必ずいるはずで、それぞれ男性と女性だから、それを表すクラスのインスタンス(オブジェクト)を入れるフィールドが必要だ。それを追加せよ。 という意味なのではないでしょうか。 問題としてたずねていることは、クラスの設計などではないような気がします。 継承とかをまだ習っていなければその可能性大です。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#1>それは人物クラスの中に内部クラスを作るということでしょうか? そのクラスからしかアクセスしないクラスということであれば、内部クラスにするのもありかもしれませんが、この場合内部クラスにする必要は無いと思います。 #3でも言われていますけど、 Man クラスと Woman クラスはほとんど似たクラスになるでしょうから、共通部分を親クラス(Super クラス)にするとするといいと思います。 自分でがんばるということなので、具体的な例というのは省略します。 既に1つのクラスが作れるのであれば、そんなに難しいことはないと思います。 とりあえず、やってみるとイイと思いますよ。 それで、やってみたが、こういう部分でうまくいかないということでさらに質問されるといいかと思います。

回答No.3

まず、ManクラスとWomanクラスを作成してPersonクラスに public Man father = Man(); public Woman mother = Woman(); とすると(アクセスレベルはわからないのでpublicにしました)フィールドを追加した、ということになります。 内部クラスにする必要は無いでしょう。 あとは考え方と使い方でいろいろあるかと思われますが、 Person(個人?微妙だな・・・。) Man(男) Woman(女) と考えると、これらは【人間】という抽象的な派生と考えた時、 これら全てのクラスのスーパークラスとして Human(人間):名前などのフィールドや性別にとらわれない人間固有の動作(話す、歩くなどのメソッド) みたいなものを作成し、継承するようなつくりにすると、 使うとき便利かも。授業の課題としてはいらないでしょうが。 ただ、常にこういう考え方をしてるとオブジェクト指向がだんだんとわかってくると思いますよ。

s-freedom
質問者

お礼

親切な回答ありがとうございます。 後は自分でがんばってみます。

  • toruo
  • ベストアンサー率30% (4/13)
回答No.2

授業の中で、あるクラスにフィールドを追加する例とかありませんでしたか? ここで、参考のコードを提示することは可能ですが、 授業の課題とのコトなので、分らなければ先生に聞きましょう。 # 先生も、それを期待している筈です。 悩むのも課題のうちです。 がんばってください。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ある人物には、当然、母親と父親がいるわけで、 それを人物クラスのフィールドとして持たせるという意味です。 母親というのは、単なる母親の名前などの単純なデータではなくて、 それ自体色々な属性や機能を持っているクラスにするということなのでしょう。 そういう意味で、あるクラスが別のクラスをフィールドとして持つのは別におかしいことではないです。

s-freedom
質問者

補足

回答ありがとうございます。 それは人物クラスの中に内部クラスを作るということでしょうか? できれば具体例を頂けるとありがたいです。 javaはまったく使ったことがなく何も分からないのでよろしくお願いします。

関連するQ&A