簡體   English   中英

Double保持返回0.0

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM