- PR -

指示内容がつかめません。。

1
投稿者投稿内容
Back180
会議室デビュー日: 2007/02/28
投稿数: 1
投稿日時: 2007-02-28 14:30
Javaを参考書を使って勉強し始めてようやく1ヶ月、
会社で先日試験があったのですが、要求されている
内容を的確につかめていないと叱られてしまいました。。。
4,5,6の意味が難解で未だによくわかりません。
こんな自分でも理解できるように誰か教えてください。

1.Employeeというクラスがあり、このクラスには下記のプロパティが存在する。
  名前、住所、電話番号、生年月日、性別
2.上記のクラスにはデフォルトコンストラクタと上記のプロパティを初期化するコンス
  トラクタの二種類が定義されている。
3.それぞれのプロパティにはsetter,getterが定義されている。
★4.クラスOfficeがあり、プロパティにはEmployeeが定義されている。このプロパティ
  にもsetter,getterが定義されており、Employeeと同じように二種類のコンストラクタ
  が定義されている。
★5.Employeeを初期化するコードを書きなさい。このとき、予約語forを用いて初期化する
  コードを書くこと。(3人分定義し、データの中身は何でもよい)
★6.Officeのクラスをインスタンス化し、上記で定義したEmployeeのクラスをOffice
  のクラスに設定しなさい。
7.インターフェイスIEmployeeを定義し、workメソッドを定義しなさい。
8.上記インターフェイスをEmployee が実装するようにEmployeeクラスを拡張しなさい。
9.Officeクラスにはworkというメソッドがあり、このメソッドが呼ばれた場合全ての
  社員にworkメソッドを実行するように実装しなさい。
10.EmployeeクラスにtoStringメソッドを定義し問い1で定義したプロパティを出力
  するように実装しなさい。
11.OfficeクラスにshowInformationメソッドを定義しこのメソッドには問10で
  定義したtoStringメソッドを用いて全員の情報を出力するプログラムを書きなさい。
12.全員の情報をファイルに出力するプログラムを書きなさい。このとき、1人の情
  報が一ラインで出力され、それぞれの項目はカンマで区切るようにしなさい。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-02-28 14:42
この問題が解けないと「学校の」単位がもらえないのですか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-28 14:42
まず、あなたはどう捕らえているかを提示してください。
文章から読み取れる内容と、あなたの捉えた内容の
両方が提示されてはじめて何が違うのか、議論できます。

今示されている文章は、試験で提示された内容ですよね?
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2007-02-28 14:45
引用:

Back180さんの書き込み (2007-02-28 14:30) より:
★4.クラスOfficeがあり、プロパティにはEmployeeが定義されている。このプロパティ
  にもsetter,getterが定義されており、Employeeと同じように二種類のコンストラクタ
  が定義されている。



コード:
public class Office{
  private Employee emp;

  public Office(){
  }

  public Office(Employee emp) {
    this.emp = emp;
  }

  public Employee getEmp(){
    return emp;
  }

  public void setEmp(Employee emp){
    this.emp = emp;
  }

}

よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-02-28 15:05
引用:

takuさんの書き込み (2007-02-28 14:45) より:
引用:

Back180さんの書き込み (2007-02-28 14:30) より:
★4.クラスOfficeがあり、プロパティにはEmployeeが定義されている。このプロパティ
  にもsetter,getterが定義されており、Employeeと同じように二種類のコンストラクタ
  が定義されている。



コード:
public class Office{
  private Employee emp;

  public Office(){
  }

  public Office(Employee emp) {
    this.emp = emp;
  }

  public Employee getEmp(){
    return emp;
  }

  public void setEmp(Employee emp){
    this.emp = emp;
  }

}





問題文どおりに作るとこうなると思いますが、
問題全体を通して出題者の意図を想像するとOfficeクラスは
複数のEmployeeクラスを保持できるコレクションであるべきだと思います。

そういう点で4、5、6の設問の記述は不明瞭だと思います。
引用:

4,5,6の意味が難解で未だによくわかりません。



私なら出題者に意図を確認します。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-02-28 15:06
引用:

Back180さんの書き込み (2007-02-28 14:30) より:
★4.クラスOfficeがあり、プロパティにはEmployeeが定義されている。このプロパティ
  にもsetter,getterが定義されており、Employeeと同じように二種類のコンストラクタ
  が定義されている。
★5.Employeeを初期化するコードを書きなさい。このとき、予約語forを用いて初期化する
  コードを書くこと。(3人分定義し、データの中身は何でもよい)
★6.Officeのクラスをインスタンス化し、上記で定義したEmployeeのクラスをOffice
  のクラスに設定しなさい。



クラスOfficeとクラスEmployeeの関連の多重度はどうなりますか?
ひとつのオフィスには複数の社員が働いているのではないですか?

#プロパティ名がEmployeeってのは間違ってると思いますが・・・。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2007-02-28 15:20
引用:

Back180さんの書き込み (2007-02-28 14:30) より:
★4.クラスOfficeがあり、プロパティにはEmployeeが定義されている。このプロパティ
  にもsetter,getterが定義されており、Employeeと同じように二種類のコンストラクタ
  が定義されている。


出題に矛盾がある。この日本語をそのまま解釈すると「このプロパティにもEmployeeと同じように二種類のコンストラクタが定義されている。」と発言していることになる。プロパティにコンストラクタが定義されている事はありえない。ここまでに登場しているクラスはOfficeかEmployeeである。文意から判断してOfficeクラスを主語としているだろうと判断できる。

#可能な限り出題者に好意的に解釈すると・・・

5.も6.も同じ様な感じで日本語にあいまいな記述がある。出題者は「あいまいな記述が仕様伝達に混乱をきたすという反面教師になるとともに、曖昧なままにせず十分に確認を取る事が必要である」と教えようとしたのではないでしょうか?

_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
1

スキルアップ/キャリアアップ(JOB@IT)