Java 获取和设置操作返回值 0

Java Get and Set returning value 0 on an operation

我无法获取操作的值。我得到的结果是 0。我尝试了很多东西,但似乎没有任何效果。我是初学者,所以如果这真的很简单,我很抱歉。我四处寻找类似的问题,但似乎找不到与我的问题相符的问题

public class Circle {
    double rad, C, D, A, A2, V;

    public double getRad(){
        return rad;
    }

    void setRad(double valueRad){
        this.rad = valueRad;
    }

    public double getCircumference(){
        return C;
    }

    void setCircumference(double Circ){
        Circ = (rad*2)*(Math.PI);
        this.C = Circ;
    }
}

这是我的主要内容:

public class Main {
    public static void main(String[] args) {

        Circle res = new Circle();

        res.setRad(5.80);

        System.out.println("The circumference is: "+res.getCircumference()+" cm");
    }
}

您的计算代码位于从未调用的 setCircumference() 方法中。当您调用 getCircumference() 方法时,将返回 0.0 的默认 C 字段值。

修复它的一种方法是计算 getCircumference() 方法中的值:

public class Circle {
  private double rad;

  public void setRad(double rad) {
    this.rad = rad;
  }

  public double getCircumference() {
    return rad * 2 * Math.PI;
  }
}

我想你忘记了什么。我建议您使用以下更改之一:

1:

void setRad(double valueRad){
        this.rad = valueRad;
        this.C = (rad*2)*(Math.PI);
    }

或 2:

public double getCircumference(){
        return (rad*2)*(Math.PI);
    }

根据工作流程,您应该在 getCircumference 之前调用 setCircumference

   Circle res = new Circle();
   res.setRad(5.80);
   res.setCircumference();
   System.out.println("The circumference is: " + res.getCircumference() + " cm"); 
   // output is The circumference is: 36.4424747816416 cm

圈子 class 应该是

class Circle {
double rad, C, D, A, A2, V;

public double getRad(){
    return this.rad;
}

void setRad(double valueRad){
    this.rad = valueRad;
}

public double getCircumference(){
    return this.C;
}

void setCircumference(){
    this.C=(this.rad*2)*(Math.PI);
}
}

这里的问题是当你设置rad时你的C不会更新。

因此,当您为 rad 调用 setter 时,您不仅需要更新 rad,还需要更新 C。 然后当你调用 getCircumference 时,C 的值将更新为 rad.