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

問題13.インターフェース

インターフェースに関する問題です。

1.インターフェースの作成

次のアウトプットとソースコードに整合するようにインターフェース、IPhone,IBrouser,ICamera,IMusicPlayerを作りなさい。

SmartPhoneクラスは各々のインターフェースの抽象メソッドをオーバーライドしているものとします。

<アウトプット>

音楽を再生する
Webを見る
電話を受ける
電話をかける
写真を撮影する
写真を表示する

<ソースコード>

 

2.オリジナルクラスの作成

IPhoneをimplementsしたMyPhoneクラス、

IBrouserをimplementsしたMyBrouserクラス、

ICameraをimplementsしたMyCameraクラス、

IMusicPlayerをimplementsしたMyMusicPlayerクラスをそれぞれ作りなさい

 

3.Comparableインターフェースの実装

以下のクラスを作成しなさい。

スーパークラス abstract Figure

役割:図形を表現する抽象クラス。 java.lang.Comparableインターフェースを実装する。

フィールド
フィールド名 アクセス修飾子 役割
area protected double 図形の面積を保持する
メソッド
メソッド名 アクセス修飾子 戻り値の型 役割
compareTo(Object o) public int Comparableインターフェースの同名メソッドの実装(オーバーライド)

 

サブクラス1 Rectangle extends Figure

役割:図形の一種である四角形を表現する。

フィールド
フィールド名 アクセス修飾子 役割
x private double 四角形の横幅を保持する
y private double 四角形の縦幅を保持する
コンストラクタ

役割:全てのフィールドを適切に初期化する

メソッド
メソッド名 アクセス修飾子 戻り値の型 役割
toString() public String Rectangle{area=xx.x}という文字列表現を返す。(オーバーライド)

 

サブクラス2 Circle extends Figure

役割:図形の一種である円を表現する。

フィールド
フィールド名 アクセス修飾子 役割
r private double 円の半径を保持する
コンストラクタ

役割:全てのフィールドを適切に初期化する

メソッド
メソッド名 アクセス修飾子 戻り値の型 役割
toString() public String Circle{area=xx.x}という文字列表現を返す。(オーバーライド)

 

<テストクラスの例>

<結果の例>

Circle{area=78.5}のほうがRectangle{area=70.0}より大きいです。

 

4.移譲を使って依存性を無くす

MyOs version2を搭載したMyPad、MyMac、MyPhoneがある。(以下、各機器と略す)

各機器のクラスは以下の通りである。

以下は、上記クラスのテストクラスである。

このとき、OSをバージョンアップして以下のMyOsV3にしたい。

しかし、今のままでは、OSと各機器が密結合してしまっており、OSを替えるにはそれぞれの機器のコードを修正する必要がある。

そこで、以下のクラス図を参考に、依存性を無くしてほしい。

つまり、OSのバージョンが3,4,5と上がったとしても各機器のクラスを変更する必要がないようにしてほしいのである。

移譲を使って依存性を無くす

<Q04のソースコード>

<結果>

MyOs version2を起動します。
MyPad特有の機能を実行.
MyOs version2を起動します。
MyMac特有の機能を実行..
MyOs version2を起動します。
MyPhone特有の機能を実行…

MyOs version3を起動します。
MyPad特有の機能を実行.
MyOs version3を起動します。
MyMac特有の機能を実行..
MyOs version3を起動します。
MyPhone特有の機能を実行…

5.オリジナルインターフェースの作成

あなたの理想の機能を抽象メソッドとして持つインターフェース達を作成しなさい。

インターフェース名は自由とします。

あなたの理想のインターフェース達をimplementsした理想のクラスを作成しなさい。

 

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

新入社員研修ポータル

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

ZOOMを使った遠隔研修

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

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

YouTubeチャンネル

新入社員研修ポータル

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