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

1.クラス図の作成

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

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

スーパークラス abstract Figure

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

フィールド

なし

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

サブクラス1 Rectangle extends Figure

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

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

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

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

サブクラス2 Circle extends Figure

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

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

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

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

2.Javaで実装

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

以下Q02のように別クラスを作成し、オブジェクト配列を使ってテストすること。
・ヒント①:円周率はMath.PIを使ってください。
・ヒント②:小数点以下第2位四捨五入1位表示するための方法はインターネットで調べてください。

<メインメソッドの例>

public class Q02 {

    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の問題集トップページに戻る