Double 一直返回 0.0
Double keeps returning as 0.0
所以我的问题很简单,我正在尝试实现方法形状并尝试打印出球体和圆锥体的半径、面积和体积。现在我不寻求家庭作业的帮助,所以请耐心等待。只是一些关于为什么我的替身没有推出我想要的变量的知识。
所以目前我要做的就是使用 toString 方法打印 "A " +name + " of radius " + r"
应该是 "A sphere of radius 6.3"
但是当我 运行 我的程序输出 "A sphere of radius 0.0"
这是我的代码:
//Main Class
public class CircleShape
{
String name;
double radius;
double area;
double volume;
CircleShape(){
}
CircleShape(String n, double r, double a, double v)
{
name = n;
radius = r;
area = a;
volume = v;
}
}
//Extension
public class SphereShape extends CircleShape
{
public String name;
public double r;
public SphereShape(String n, double r)
{
name = n;
radius = r;
}
public String getName(String name)
{
return name;
}
public void setName(String n)
{
name = n;
}
public double getRadius()
{
return radius;
}
public void setRadius(double r)
{
radius = r;
}
public String toString()
{
return "A " + name + " of radius " + r;
}
}
//Driver/Tester
public class CircleShapeTest extends CircleShape
{
public static void main(String[] args)
{
SphereShape sph = new SphereShape("sphere", 6.3);
System.out.println(sph);
}
}
您从未设置 class 变量 r
,您正在设置 CircleShape
的 radius
,但从未使用此变量。
改变
return "A " + name + " of radius " + r;
到
return "A " + name + " of radius " + radius
;
不要在子类中重新声明相同的字段。 CircleShape
中的四个声明已经足够好了,可以被SphereShape
设置和访问。重新创建新字段是不必要的且令人困惑,并且导致了您的错误。
所以我的问题很简单,我正在尝试实现方法形状并尝试打印出球体和圆锥体的半径、面积和体积。现在我不寻求家庭作业的帮助,所以请耐心等待。只是一些关于为什么我的替身没有推出我想要的变量的知识。
所以目前我要做的就是使用 toString 方法打印 "A " +name + " of radius " + r"
应该是 "A sphere of radius 6.3" 但是当我 运行 我的程序输出 "A sphere of radius 0.0"
这是我的代码:
//Main Class
public class CircleShape
{
String name;
double radius;
double area;
double volume;
CircleShape(){
}
CircleShape(String n, double r, double a, double v)
{
name = n;
radius = r;
area = a;
volume = v;
}
}
//Extension
public class SphereShape extends CircleShape
{
public String name;
public double r;
public SphereShape(String n, double r)
{
name = n;
radius = r;
}
public String getName(String name)
{
return name;
}
public void setName(String n)
{
name = n;
}
public double getRadius()
{
return radius;
}
public void setRadius(double r)
{
radius = r;
}
public String toString()
{
return "A " + name + " of radius " + r;
}
}
//Driver/Tester
public class CircleShapeTest extends CircleShape
{
public static void main(String[] args)
{
SphereShape sph = new SphereShape("sphere", 6.3);
System.out.println(sph);
}
}
您从未设置 class 变量 r
,您正在设置 CircleShape
的 radius
,但从未使用此变量。
改变
return "A " + name + " of radius " + r;
到
return "A " + name + " of radius " + radius
;
不要在子类中重新声明相同的字段。 CircleShape
中的四个声明已经足够好了,可以被SphereShape
设置和访问。重新创建新字段是不必要的且令人困惑,并且导致了您的错误。