Print Friendly, PDF & Email

抽象クラスに関する問題です。

1.クラス図の作成

次のクラス仕様書を元にクラス図を作成しなさい。

なお、以下のいずれのクラスのメソッドにも引数列はない。

スーパークラス abstract Figure

役割:図形を表現する抽象クラス。

フィールド

なし

メソッド
メソッド名 アクセス修飾子 戻り値の型 役割
getArea() public double 図形の面積を返す抽象メソッド。

 

サブクラス1 Rectangle extends Figure

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

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

役割:フィールドを初期化する

メソッド
メソッド名 アクセス修飾子 戻り値の型 役割
getArea() public double 四角形の「横幅×立幅」を計算して面積を返す。

 

サブクラス2 Circle extends Figure

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

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

役割:フィールドを初期化する

メソッド
メソッド名 アクセス修飾子 戻り値の型 役割
getArea() public double 円の面積を「半径×半径×円周率」を計算して返す。面積は小数点以下第2位四捨五入1位表示

 

2.Javaで実装

上記問題で作成したクラス図を基にJavaで実装しなさい。

以下のようにペアで別クラスを作成し、オブジェクト配列を使ってテストすること。
(ペア・プログラミング)
(すべてのインスタンスのgetArea()メソッドを使う。)

<メインメソッドの例>

class Example_14_1 {

    public static void main(String[] args) {
        Figure[] fg = new Figure[2];
        fg[0] = new Rectangle(5.0, 10.0);
        fg[1] = new Circle(5.0);
        for (int i = 0; i < fg.length; i++) {
            System.out.println((i + 1) + "番目の図形の面積 = " + fg[i].getArea());
        }
    }
}

 

<結果>

1番目の図形の面積 = 50.0
2番目の図形の面積 = 78.5

 

3.オリジナルクラスのクラス図

上記問題で作成したクラス図にオリジナルクラスを書き加えなさい。

例:平行四辺形や楕円の面積、球の表面積など。
(ホワイトボードにスーパークラスとオリジナルクラスを書く)

 

4.オリジナルクラスの実装

上記問題で作成したオリジナルのクラス図を基にJavaで実装しなさい。

2.と同様のテストをすること。

 

5.発表

オリジナルクラスを発表いただきます。

 

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