亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

程序將區域顯示為“0”

程序將區域顯示為“0”

慕妹3242003 2023-11-10 16:16:42
該程序計算球體的面積和體積。這是一個家庭作業問題,所以不能改變太多的格式。我認為這里的主要問題是變量范圍,但是我無法識別它。import  java.util.*;class Data{     double r;     public void gdata()     {          System.out.println("Enter Radius");          Scanner s = new Scanner(System.in);          r=s.nextFloat();     }}class Area extends Data{     double area;     public void calculate()     {area = r*r*3.14;}     public void display()    {        Area obj = new Area();        obj.calculate();        System.out.println("Area of Circle= "+area);}    }}class  Volume extends Area {    final double pi=3.141;    double v;    public void calculate()    {v=(4*r*r*r*pi)/3;}    public void display()    {           Volume obj = new Volume();        obj.calculate();        System.out.println("Volume of Sphere= "+v);}    }class Postlab{    public static void main(String args[])    {        Area obj1 = new Area();        Area obj2 = new Volume();        obj1.display();        obj2.display();    }}
查看完整描述

2 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

問題是 :-

  1. 您從未調用過gData()將初始化您的半徑的函數。

  2. 當您調用 時,您正在創建一個新對象display()。而不是calculate()從同一個對象調用。

請找到下面的工作代碼:-

import  java.util.*;


class Data


{


    double r;

    public void gdata()


    {


        System.out.println("Enter Radius");

        Scanner s = new Scanner(System.in);

        r=s.nextFloat();

    }


}


class Area extends Data


{


    double area;

    public void calculate()

    {area = r*r*3.14;}

    public void display()


    {


        this.gdata();

        this.calculate();

        System.out.println("Area of Circle= "+area);}


}



class  Volume extends Area


{


    final double pi=3.141;

    double v;

    public void calculate()

    {v=(4*r*r*r*pi)/3;}

    public void display()


    {


        this.gdata();

        this.calculate();

        System.out.println("Volume of Sphere= "+v);}


}



class Postlab


{


    public static void main(String args[])


    {


        Area obj1 = new Area();

        Area obj2 = new Volume();

        obj1.display();

        obj2.display();


    }


}


查看完整回答
反對 回復 2023-11-10
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

在某些時候你必須調用Data's gdata(),否則r將始終為 0。



查看完整回答
反對 回復 2023-11-10
  • 2 回答
  • 0 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號