程序将区域显示为“0”

该程序计算球体的面积和体积。这是一个家庭作业问题,所以不能改变太多的格式。


我认为这里的主要问题是变量范围,但是我无法识别它。


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();


    }


}


慕妹3242003
浏览 134回答 2
2回答

繁花不似锦

问题是 :-您从未调用过gData()将初始化您的半径的函数。当您调用 时,您正在创建一个新对象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();    }}

慕的地8271018

在某些时候你必须调用Data's gdata(),否则r将始终为 0。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java