TransWikia.com

java 球体を表すBallクラス

スタック・オーバーフロー Asked by tata on December 23, 2021

下のようなプログラムを作りたいのですがうまくいきません。どうしてもわからないのでどなたか解答を教えてくれませんか。
よろしくお願いしますm(__)m

/*
 * Ex07
 * 球体を表すクラス Ball を作成せよ。
 * 具体的には、以下のコンストラクタとメソッドを作成せよ。
 *     Ball(int radius) ------------ 半径radiusの球体を生成する
 *     Ball(Ball ball) ------------- 球体ballのクローンを生成する
 *     int getRadius() ------------- 半径を取得する
 *     void setRadius(int radius) -- 半径を設定する
 *     double computeVolume() ------ 体積を計算する
 *     boolean equalTo(Ball ball) -- 球体ballと同じ大きさか判定する
 *     String toString() ----------- 文字列表現「Ball(radius)」を得る
 *
 * ただし、フィールドとして int radius を使用すること。
 */
import java.util.Scanner;
class Ball {

    // フィールド(変更禁止)
    private int radius; // 半径

    // コンストラクタ(変更禁止)
    public Ball() {
    }

    // コンストラクタ(要作成)
    public Ball(int radius) {

    }

    // コンストラクタ(要作成)
    public Ball(Ball ball) {

    }

    // 半径を取得するメソッド(要作成)
    public int getRadius() {

        return -1; // 不要ならば削除すること
    }

    // 半径を設定するメソッド(要作成)
    public void setRadius(int radius) {
        double r;   // 半径
        Scanner scanner = new Scanner(System.in);

        System.out.print( "半径:" );
        r = scanner.nextDouble();

    }

      // 体積を計算するメソッド(要作成)
    public double computeVolume() {

        return(4.0 / 3.0 * 3.14 * radius * radius * radius);
     
    }

    // 球体ballと同じ大きさか判定する(要作成)
    public boolean equalTo(Ball ball) {

        return false; // 不要ならば削除すること
    }

    // 文字列表現を得る(要作成)
    public String toString() {

        return ""; // 不要ならば削除すること
    }
}

One Answer

クラスのフィールドとメソッドの使い方が分かればその応用で解決できます。

  • Ball(int radius) ------------ 半径radiusの球体を生成する
    • radiusを書き換えるので、コンストラクタの中でsetRadiusメソッドを呼び出せば解決です。
  • Ball(Ball ball) ------------- 球体ballのクローンを生成する
    • こちらは別のインスタンスから半径を取ってきてradiusを書き換えるので、ball.getRadius();で取得したradiusを上のコンストラクタと同様にsetRadiusで書き換えます。
  • int getRadius() ------------- 半径を取得する
    • この演習までの教材にreturnの使い方が載っていたと思いますので、それを参考にしてみましょう。
      このサイトの類似QA: 戻り値についてとvoidについて
  • void setRadius(int radius) -- 半径を設定する
  • double computeVolume() ------ 体積を計算する
    • 類似の演習問題サイトのどこかに解答が載っています。
  • boolean equalTo(Ball ball) -- 球体ballと同じ大きさか判定する
    • このインスタンスのradiusとball.getRadius()を比較演算子で比較した結果をreturnしましょう。
  • String toString() ----------- 文字列表現「Ball(radius)」を得る
    • 文字列のフォーマットが分かりませんが、例えば下記のサンプルコードで半径と体積を表現できます。
public String toString() {
    return String.format("ボールの半径は%d, 体積は%fです。", radius, computeVolume());
}

Answered by payaneco on December 23, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP