プログラムの印刷は、シリンダーの面積、体積、範囲+継承Javaの印刷を0.0に保ちます

TheMuffinMan

私はこれをいくつかの異なる方法で試しました。これらのクラスを拡張するには、継承を使用する必要があります。プログラムを実行するたびに、ボリュームと面積に0.0が出力されます。半径が正しく表示されます。下部に出力します。

public class Base_HW04Q1
{
    public double pi = 3.14, l, radius, height, area, volume;

    public static class RoundShape extends Base_HW04Q1 {
        public RoundShape(double radius) {
            this.radius = radius;
        }
        public double calcArea () {
            area = (radius * radius) * pi;
            return area;
        }
        public String toString() {
            return "A Round Shape of radius: " + radius + ", area " + area + ".";
        }
    }


    public static class Cylinder extends Base_HW04Q1
    {
        public Cylinder(double radius, double height) {
            this.radius = radius;
            this.height = height;
        }
        public double calcArea() {
            l = Math.sqrt((radius * radius) + (height * height));
            area = 2 * pi * radius * height + 2 * pi * l;
            return area;
        }
        public double calcVolume() {
            volume = pi * (radius * radius) * height; 
            return volume;
        }
        public String toString() {
            return "A Cylinder of radius: " + radius + ", area " + area + " and a volume of " + volume;
        }
    }


    public static class Cone extends Base_HW04Q1 //TODO: This line is almost, but not quite, complete.
    {
        public Cone(double radius, double height) {
            this.radius = radius;
            this.height = height;
        }
        public double calcArea() {
            l = Math.sqrt((radius * radius) + (height * height));
            area = (pi * radius * l) + (pi * radius * radius);
            return area;
        }
        public double calcVolume() {
            volume = 0.333 * pi * radius * radius * height;
            return volume;
        }
        public String toString() {
            return "A Cone of radius: " + radius + ", area " + area + " and a volume of " + volume;
        }
    }   

    public static void main(String[] args)
    {  
        //object creation
        Cylinder Cylinder1 = new Cylinder(30, 10);
        Cone Cone1 = new Cone(10, 20);
        RoundShape RoundShape1 = new RoundShape(50);

        //print for objects
        System.out.println(Cylinder1);
        System.out.println(RoundShape1);
        System.out.println(Cone1);
    }
}

出力:

半径の円柱:30.0、面積0.0、体積0.0半径の丸い形状:50.0、面積0.0。半径の円錐:10.0、面積0.0、体積0.0

うなぎだらけのホバークラフト

あなたはtoString()決して計算を行うメソッドを呼び出していないし、代わりにデフォルトの0.0フィールド値を出力します。メソッドが呼び出さtoString()れる前calcXxxx()、つまり計算フィールドに適切な値が与えられる前にが呼び出された場合、このリスクが発生します。最善の解決策は、面積や体積などの計算値のフィールドを完全に取り除くことによって、この問題が最初に発生するのを防ぐことです。代わりに、toString()内で、メソッドを呼び出してこれらの値を取得します。

例えば、

public double pi = 3.14, l, radius, height; // , area, volume;

public static class RoundShape extends Base_HW04Q1 {
    public RoundShape(double radius) {
        this.radius = radius;
    }
    public double calcArea () {
        return (radius * radius) * pi;
        // return area;
    }
    public String toString() {
        return "A Round Shape of radius: " + radius + ", area " + calcArea() + ".";
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaの継承 - フライ(プログラム)が実行されたときに印刷されますか?

分類Dev

終了するまでforループをアクティブに保ち、その後0に戻す方法

分類Dev

<<演算子は、印刷のランダムなステップで終了コード0のプログラムをクラッシュさせています

分類Dev

末尾の0を削除する正規表現ですが、値を特定の長さに保ちます

分類Dev

2つの異なるデータフレームを使用して、積み上げ面積プロットにラインプロットを課します

分類Dev

パンダのローリングウィンドウの累積積を計算する方法は?

分類Dev

整数を範囲内に保ちますか?

分類Dev

java:印刷ダイアログのページ範囲を設定する

分類Dev

ユーザーが指定した範囲で5のマルチプルを印刷するプログラム

分類Dev

長方形の面積を計算するPython3.3.4でプログラムを書く方法は?

分類Dev

トップシータを時計回りに使用したgnuplot極プロットは、内側の放射状グリッドの原点を0度に保ちます

分類Dev

印刷ダイアログ:ページ範囲->ページのデフォルトの「0」を削除するにはどうすればよいですか?

分類Dev

C ++は、置換なしで範囲0:n-1(n> k)からk個の数値をランダムにサンプリングします

分類Dev

行をループし、列の値をランダムな値R未満に保ちます

分類Dev

パンダのデータフレームから積み上げ棒グラフをプロットする

分類Dev

画像サイズを縮小し、100%の幅に保ちます

分類Dev

Javaの継承プログラムでユーザーのタイプを区別する方法は?

分類Dev

ドリルダウンオプション付きのAmチャートで積み上げ棒グラフを作成することはできますか?

分類Dev

Javaでユーザーのパスワードを安全に保ちますか?

分類Dev

Googleスプレッドシートの累積差異またはローリング差異-クエリ

分類Dev

Easeljsはオブジェクトを範囲内に保ちます

分類Dev

スクロール時にdivの位置を中央に保ちます

分類Dev

Rの範囲に基づいてプロットされた積み上げ棒グラフを作成する

分類Dev

Rのシミュレーションを使用して、ランダムに生成された三角形の面積のおおよその分散

分類Dev

球の半径の入力をユーザーに求め、その体積を出力するプログラムを作成します

分類Dev

Nasmx86-64のHelloWorldプログラムは、HelloWorldを継続的に印刷します

分類Dev

Nasmx86-64のHelloWorldプログラムは、HelloWorldを継続的に印刷します

分類Dev

0から49の範囲の1000個のランダムな整数を生成するプログラムを作成します。(C ++)

分類Dev

パンダシリーズ-グループ化して、最新のnull以外の累積を取得します

Related 関連記事

  1. 1

    Javaの継承 - フライ(プログラム)が実行されたときに印刷されますか?

  2. 2

    終了するまでforループをアクティブに保ち、その後0に戻す方法

  3. 3

    <<演算子は、印刷のランダムなステップで終了コード0のプログラムをクラッシュさせています

  4. 4

    末尾の0を削除する正規表現ですが、値を特定の長さに保ちます

  5. 5

    2つの異なるデータフレームを使用して、積み上げ面積プロットにラインプロットを課します

  6. 6

    パンダのローリングウィンドウの累積積を計算する方法は?

  7. 7

    整数を範囲内に保ちますか?

  8. 8

    java:印刷ダイアログのページ範囲を設定する

  9. 9

    ユーザーが指定した範囲で5のマルチプルを印刷するプログラム

  10. 10

    長方形の面積を計算するPython3.3.4でプログラムを書く方法は?

  11. 11

    トップシータを時計回りに使用したgnuplot極プロットは、内側の放射状グリッドの原点を0度に保ちます

  12. 12

    印刷ダイアログ:ページ範囲->ページのデフォルトの「0」を削除するにはどうすればよいですか?

  13. 13

    C ++は、置換なしで範囲0:n-1(n> k)からk個の数値をランダムにサンプリングします

  14. 14

    行をループし、列の値をランダムな値R未満に保ちます

  15. 15

    パンダのデータフレームから積み上げ棒グラフをプロットする

  16. 16

    画像サイズを縮小し、100%の幅に保ちます

  17. 17

    Javaの継承プログラムでユーザーのタイプを区別する方法は?

  18. 18

    ドリルダウンオプション付きのAmチャートで積み上げ棒グラフを作成することはできますか?

  19. 19

    Javaでユーザーのパスワードを安全に保ちますか?

  20. 20

    Googleスプレッドシートの累積差異またはローリング差異-クエリ

  21. 21

    Easeljsはオブジェクトを範囲内に保ちます

  22. 22

    スクロール時にdivの位置を中央に保ちます

  23. 23

    Rの範囲に基づいてプロットされた積み上げ棒グラフを作成する

  24. 24

    Rのシミュレーションを使用して、ランダムに生成された三角形の面積のおおよその分散

  25. 25

    球の半径の入力をユーザーに求め、その体積を出力するプログラムを作成します

  26. 26

    Nasmx86-64のHelloWorldプログラムは、HelloWorldを継続的に印刷します

  27. 27

    Nasmx86-64のHelloWorldプログラムは、HelloWorldを継続的に印刷します

  28. 28

    0から49の範囲の1000個のランダムな整数を生成するプログラムを作成します。(C ++)

  29. 29

    パンダシリーズ-グループ化して、最新のnull以外の累積を取得します

ホットタグ

アーカイブ