0
public class CirclTest{
    public static void main(String[] args){
        Circle first=new Circle('R',3.0);

        Circle first=new Circle('R',3.0);

        Circle second=new Circle();

        System.out.println("first's radius is " + first.getRadius());

        System.out.println("first's area is " + first.getArea());
        System.out.println("second's area is " + second.getArea());

        if(first.hasLargerAreaThan(20)){
            System.out.println("first's area is larger than 20. ");
        }else{
            System.out.println("first's area is smaller than 20. ");
        }
    }
}

だから私はサークルクラスを書くことになっています.これは私がやったことです.

public class Circle{
    private double radius=0.0;
    private double area=0.0;
    private char colour=' ';

    public Circle(char colour,double radius){
        this.colour=colour;
        this.radius=radius;
    }

    public Circle(){
        radius=0;
        colour='B';
    }


    public char getColour(){
        return colour;
    }
    public double getRadius(){
        return radius;
    }

    public double getArea(){
        return area;
    }


    }

私はクラスの書き方について実際に混乱しています.プライベートなどで変数を初期化する必要があることを知っているように.そして、コンストラクタを構築する必要がありますが、どういうわけか上記のコードは機能しません.テストメソッドは正しいです.しかし、私はしなければなりません.それを使用してクラスを実装します。

4

3 に答える 3

0

まず、必要に応じて、テスト フレームワークを使用してコードの有効性を確認します。JUnitを調べてください。

面積がある値より大きいかどうかのサンプル アサーションは、次のように記述されます。

@Test
public void assertArea_calculatedProperly() {
    //given that the radius is 5,
    Circle c = new Circle('R', 5);

    //when I get the area...
    double result = c.getArea();

    //then I expect it to be around 78.53981634.
    assertTrue(result < 78.6);
    assertTrue(result > 78.5);
}

第二に、あなたgetAreaは実際に面積を得ていません。コードに取得するものは何もないので、面積を計算します。あなたも使用していませんMath.PI。それを実装することをお勧めしますが、適切な応答が返されることを主張する有効な方法として単体テストを使用してください。

于 2013-04-24T03:09:41.830 に答える
0

変数を宣言しています

Circle first

二回。その値を再割り当てしたい場合は、

first=new Circle('R',3.0);

そして、あなたが呼んでいるif文の中で

first.hasLargerAreaThan(20)

クラスでそのようなメソッドが定義されていない場合。

于 2013-04-24T02:57:56.960 に答える
0

コードが機能しないという意味を教えてください。面積が正しく計算されず、常に 0 であると言及している場合、それは 0 と同じデフォルト値があり、それを計算していないために発生しています。getArea() メソッドに計算ロジックを入れたいと思うかもしれません。

于 2013-04-24T02:58:05.760 に答える