ITエンジニアのプレイングマネージャー化応援サイト

7.オブジェクトの利用

0.クラスメソッドをインスタンスメソッドにする

前回の「6.メソッドのいろいろ」で作成したクラスメソッドを全てインスタンスメソッドに書き換えよ。

例えば、「1.引数あり、戻り値あり」であれば以下のようになる。

 

以下のプログラムはチームメンバー全員の自己紹介をするためのプログラムです。

1.インスタンスメソッド

以下の NewComer (新入社員)クラスを使用(コピー)して、プログラムを作成しなさい。
※以降の問はこのクラスに追加変更を加えること
※題意から外れた部分はコメントアウトしておくこと
※途中経過をファイルとして残す必要はない

(1)NewComer クラスにmainメソッドを追加しインスタンスを生成する。
        ※このように自作クラスにmainメソッドを書くと、クラスをすぐに実行して動作が確認でき便利です。
(2)setName メソッドであなたの名前を設定する。
(3)showProfile メソッドであなたの名前を表示する。

2.インスタンスメソッドの作成と変更

前問の NewComer クラスに、次の内容を追加しなさい。
(1)年齢を保持する int 型のメンバー変数を追加する。
(2)年齢を設定するメンバー・メソッド、setAgeを追加する。
(3)mainメソッド内で自分の年齢(サバ読み可)を設定する。
(4)showProfile メソッドで名前、年齢を表示するようにする。
(5)インスタンスを作成し名前、年齢を設定、プロフィールを表示する。

出力例

私の名前は今井です。
年齢は40歳です。

3.オブジェクト配列とメソッド

前問の NewComer クラスを使用して次のプログラムを作成しなさい。
(1)オブジェクト配列を使い、メンバー全員分のNewComer クラスのインスタンスを作成しなさい。
(2)すべてのインスタンスに名前、年齢を設定する。
(3)すべてのインスタンスのプロフィールを表示する。

出力例

私の名前は今井です。
年齢は40歳です。
———————
私の名前は山田です。
年齢は37歳です。

4.インスタンスメソッドの利用

前問の NewComer クラスに、次の内容を追加しなさい。
(1)趣味を保持するメンバー変数( hobby:String 型)を追加する。
(2)名前、年齢、趣味を設定する引数を持つコンストラクタを追加する。
(3)ShowProfile メソッドを名前、年齢、趣味を表示するように変更する。
(4)一つ年をとるgetOlderメソッド(引数無し、戻り値年齢)を追加する。
(5)NewComer クラスのインスタンスをチームメンバー数だけ作成する。
(6)全員のプロフィールを表示する。
(7)getOlderメソッドで全員1歳年をとらせてから同様にプロフィールを表示する。
  (ここでは戻り値を使っていない、戻り値を捨てていることに注意)

5.メソッドの引数や戻り値がオブジェクト配列

ここまでで作成したクラスが以下の通りだったとします。

このとき複数のNewComerを一つのチームにまとめるTeamクラスを作成しなさい
(1)フィールドはprivateなNewComerのオブジェクト配列newcomers。
(2)コンストラクタはなし(デフォルトコンストラクタ)。
(3)NewComerのオブジェクト配列を返すパブリックなgetTeamメソッド(引数なし)。
(4)NewComerのオブジェクト配列をフィールドに設定するパブリックなsetTeamメソッド(引数はNewComerのオブジェクト配列newComers)。

以下は上記のmainメソッドに付け加えること。
(5)自分たちのチームをTeamクラスのインスタンス変数で参照しなさい。(変数名の例:teamA)
(6)自分たちのチームをsetTeam()する。
(7)自分たちのチームの2番目の人の趣味だけをnewComersフィールドに直接アクセスして表示するコードを書きたいとします。以下⑥を埋めなさい。

(8)NewComerクラスのhobbyフィールドをprivateにしてから同クラスに適切なメソッドを書き加え(7)と同じ結果が得られるよう以下⑦を埋めてください。

 

6.thisの使い方

漫才をする学生のプログラムのプロトタイプである。

以下のようなアウトプットを表示したい。

ボケます  to 山崎 from 今井
ボケます  to 今井 from 山崎
 
ボケます  to 今井 from 今井
なんでやねん! 今井
 

つまり2人の生徒が互いにボケを交わした後、自分でボケて自分自身に突っ込みを入れたいのである。

 
 

問:以下のコードの①~④を埋めなさい。

 

7.インスタンス変数をスタティックメソッドから参照する

次のコードを実行するとどうなりますか?

また、それはなぜですか?

 

8.オリジナル問題作成

将来の後輩のために良い問題が出来たら教えてください。

 

JavaSEの問題集トップページに戻る

 

新入社員研修ポータル

IT企業の人財育成に関することなら全てお任せ下さい TEL 0120-559-463 受付時間 10:00 - 17:00 (土・日・祝日除く)

ZOOMを使った遠隔研修メニュー(PDFが開きます)

ZOOMを使った遠隔研修

新人エンジニアのためのJavaタイピングゲーム

新人プログラマのためのプログラミング動画

YouTubeチャンネル

お問い合わせはこちらから

お名前 (必須)

メールアドレス (必須)

題名(件名)

メッセージ本文

確認画面は表示されません。上記内容にて送信しますので、よろしければチェックを入れてください。

新入社員研修ポータル

PAGETOP
Copyright © Say Consulting Group, Inc. All Rights Reserved.