[英]Double keeps returning as 0.0
所以我的問題很簡單,我試圖實現方法的形狀,並試圖打印出球體和圓錐體的半徑,面積和體積。 現在,我不需要尋求家庭作業的幫助,所以請多多包涵。 關於為什么我的雙胞胎沒有給出預期變量的一些知識。
因此,目前我要嘗試的是使用toString方法打印半徑為“ + r”的“ A” +名稱+“
它應該只是“半徑為6.3的球體”,但是當我運行程序時,卻輸出了“半徑為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);
}
}
您從未設置類var r
,而是設置了CircleShape
radius
,但從未使用此var。
更改return "A " + name + " of radius " + r;
return "A " + name + " of radius " + radius
;
不要在子類中重新聲明相同的字段。 CircleShape
中的四個聲明足夠好,可以由SphereShape
設置和訪問。 重新創建新字段是不必要且令人困惑的,並且已導致您的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.