質問

そのため、半径を設定する円クラスを作成し、半径、円周、および面積を出力する必要がありますが、半径、半径、円周、面積を入力すると、出力されないため、ちょうど0.0と表示されます 私のCircle.java

public class Circle
{
    private double radius;
    private double PI = 3.14159;

    public void setRadius(double rad)
    {
            radius = rad;
    }

    public double getRadius()
    {
            return radius;
    }

    public double getArea()
    {
            return PI * radius * radius;
    }

    public double getDiameter()
    {
            return 2 * radius;
    }

    public double getCircumference()
    {
            return 2 * PI * radius;
    }

}

およびheres circledemo.java http://pastie.org/466414 -ここではフォーマットがうまくいきませんでした

最初に半径を入力しますが、getRadius、円周、面積を呼び出すと、単に0.0を出力します

役に立ちましたか?

解決

ステップごとにプログラムの実行を見ていきましょう。最初に、いくつかの変数を初期化してからScannerオブジェクトを作成します。次に、 while ループに入ります。そのwhileループ内で、メインメニューを表示し、キーボードから入力を読み取り、新しいCircleオブジェクトを作成して、受け取った入力を処理します。そして、 flag false に設定されるまでそれを続けます。この場合、プログラムは終了します。

ここで何かおかしいことに気付きましたか?

変数は宣言されたスコープ内にのみ存在し、Circleオブジェクトはwhileループの内部で宣言されました。 whileループの本体は、whileループの 1回の繰り返し を表します。したがって、基本的に、Circleオブジェクトは何度も再作成されるため、 setRadius()は効果がありません。

他のヒント

Circleオブジェクトインスタンスを作成します(つまり、コードCircle one = new Circle())whileループの外側です。ループが繰り返されるたびに、オブジェクトは新しい状態(つまり、新しい半径)で再作成されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top