Java类类型方法

时间:2015-12-28 14:33:12

标签: java

我在java中有一个家庭作业...我尝试了很多方法,但显然,stackoverflow是最后一个:(

所以,我有这个课程:

public final class Span {

    private final double length;

   public Span(){
        this(0);

   }

    public Span(double length) {
        this.length= length;

    }


    public double getLength(){

        return length;
    }
}

public final class Circle {

    private Span radius;

    //radius with double
    public Circle(double radius) {

    }

    // span
    public Circle(Span radius){
        this.radius= radius;

    }
    //calculate area.....
    public double area(double radius){

        return Math.PI * (radius * radius);

    }

可是:

**private Span radius**; <---- This is necessary :(

我必须创建Span(类型)半径(在Circle类中),跨度直径和跨度周长。

2 个答案:

答案 0 :(得分:1)

公共决赛圈圈{

private Span radius;

//radius with double
public Circle(double radius) {
     this.radius = new Span(radius);
}

// span
public Circle(Span radius){
    this.radius= radius;

}
//calculate area.....
public double area(){

    return Math.PI * (radius.getLength() * radius.getLength());

}

答案 1 :(得分:0)

除了原始双倍之外,在Span类中很难看到很多价值。我可以想到你可以添加的两个功能可以使它更有用:

  1. 负长度毫无意义。如果在分配之前传递了一个小于零的长度,我会在Span构造函数中添加一个检查来抛出IllegalArgumentException
  2. 封装单位以及长度(厘米,米,英寸,英尺等)将是一种改进。
  3. 有了这些,你只需要能够使用跨度来计算:

    double perimeter = 2.0*Math.PI*Span.getLength();
    

    构建Circle后,不应设置半径。让它告诉您该区域使用原始Span