すべて 指定のパッケージ内に作成してください

ソースコード(クラス名.java)をSドライブにアップロードして提出してください

S:\Java\課題提出\基礎\13章


問題1 直方体クラスのカプセル化

Chapter12で作成したBoxクラスは、コンストラクタやメソッド内で縦、横、高さがプラスの値かチェックしているにも関わらず、 カプセル化されていないため、フィールドに直接アクセスするとマイナスの値を指定できてしまう状態になっていました。


class Box {
    // フィールド
    int tate;
    int yoko;
    int takasa;

    // コンストラクタ
    Box() {
        this(0, 0, 0);
    }
    Box(int tate, int yoko, int takasa) {
        setLength(tate, yoko, takasa);
    }

    // メソッド
    int getVolume() {
        return tate * yoko * takasa;
    }

    int getAllArea() {
        return (tate*yoko*2 + tate*takasa*2 + yoko*takasa*2);
    }

    void dispLength() {
        System.out.println("縦:" + tate);
        System.out.println("横:" + yoko);
        System.out.println("高さ:" + takasa);
    }

    void dispAll() {
        dispLength();
        System.out.println("体積:" + getVolume());
        System.out.println("表面積:" + getAllArea());
    }

    void setLength(int tate, int yoko, int takasa) {
        if(tate < 0 || yoko < 0 || takasa < 0) {
            this.tate = 0;
            this.yoko = 0;
            this.takasa = 0;

        } else {
            this.tate = tate;
            this.yoko = yoko;
            this.takasa = takasa;
        }
    }
}
            

上記のBoxクラスをchapter13.kadai1パッケージに作成し、以下の変更を加えてカプセル化を行ってください。

また、chapter13.kadai1.testパッケージにBoxMainクラスを作成し、mainメソッドからBoxクラスのコンストラクタ、メソッドを呼び出してテストしてください

問題2 試験結果の記録クラスの作成

試験結果を管理するプログラムを作成します。以下の仕様でクラスを作成してください。

アクセス修飾子は、クラス、コンストラクタ、メソッドはpublic、フィールドはprivateとし、全てのフィールドのゲッターセッターを作成してください。

パッケージ chapter13.kadai2
クラス名 Exam
フィールド
int kokugo 国語の点数
int sugaku 数学の点数
int eigo 英語の点数
コンストラクタ
引数なし
宣言のみ。処理は行わない
コンストラクタ
引数 整数3つ
引数で各テストの点数を受け取り、フィールドにセットする。
メソッド int getSum()
 全科目の合計点を返す

double getAverage()
 全科目の平均点を返す

void checkAdditionalExam()
 各科目、60点未満なら「○○(科目名)は追試を受けてください」とメッセージを表示する。 例) 国語は追試を受けてください
 全科目60点以上なら「追試対象の科目はありません」と表示する。

各フィールドのセッター・ゲッター
(メソッド名・引数・戻り値は各自で適切なものを考えること)

chapter13.kadai2.testパッケージにExamMainクラスを作成し、mainメソッドからExamクラスの各コンストラクタ、メソッドを呼び出してテストしてください。

余裕がある人は、Chapter12練習問題の 問題2、問題3 で作成したクラスのカプセル化もおこなってみましょう。