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
.
我无法获取操作的值。我得到的结果是 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
.