为了账号安全,请及时绑定邮箱和手机立即绑定

如何摆脱我的代码中的“找不到符号”错误?

如何摆脱我的代码中的“找不到符号”错误?

紫衣仙女 2022-07-20 20:28:28
我目前正在做一个项目,并且不断收到错误消息。我被困住了,联系了很多人(包括我的导师),现在我求助于你们。到目前为止,这是我的代码。public class Circle    private int radius = getRadius();    private double area = getArea();    public Circle(int r)     {        r = radius;    }    public int getRadius()    {        return radius;    }    public double getArea(int r)    {        return area = Math.PI * r * r;      }}/java.util.Scanner;public class CircleTest{    public CircleTest()    {        int radius = getRadius();        double area = getArea(r);           }       public static void main (String[] args)     {        Scanner kboard = new Scanner(System.in);        System.out.print("Give the radius of a circle. ");        String area = kboard.nextLine();        System.out.println("The area of the circle is... " + area);        System.out.println();        kboard.close();    }}C:\Users\jthom\My Work\Circle\src\CircleTest.java:18:错误:找不到符号双面积 = getArea(r);符号:变量 r位置:类 CircleTest.C:\Users\jthom\My Work\Circle\src\CircleTest.java:33:错误:找不到符号System.out.println("圆的面积是……" + area);符号:变量区位置:类 CircleTest2 个错误
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

让我们从类 Circle 开始。这是您的原始代码:


public class Circle


    private int radius = getRadius();

    private double area = getArea();


    public Circle(int r) 

    {

        r = radius;

    }


    public int getRadius()

    {

        return radius;

    }


    public double getArea(int r)

    {

        return area = Math.PI * r * r;  

    }


}

对于您的变量,您不需要“面积”,因为它是计算出来的。此外,除了在构造函数中,您不应该将半径分配给任何东西:


    private int radius;

    //private double area = getArea(); <-- don't need this variable at all

您将“r”传递给构造函数,但随后错误地尝试为其分配“半径”值。这是倒退;您应该将“r”值分配给“radius”:


    public Circle(int r) 

    {

        radius = r;

    }

最后,在 中getArea(),您不需要传入的半径或“区域”;只需返回计算值(使用“半径”中的存储值,而不是“r”):


    public double getArea()

    {

        return Math.PI * radius * radius;  

    }

总而言之,您的 Circle 类应该看起来更像:


public class Circle


    private int radius;


    public Circle(int r) 

    {

        radius = r;

    }


    public int getRadius()

    {

        return radius;

    }


    public double getArea()

    {

        return Math.PI * radius * radius;  

    }


}

在 CircleTest 中,您应该首先从用户那里获取半径,然后将其传递给 Circle 的构造函数。最后,使用您的 Circle 实例,调用它的 getRadius() 和 getArea() 方法。


查看完整回答
反对 回复 2022-07-20
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

你还没有定义变量rarea,来帮助解决这个问题

替换double area = getArea(r);double area = circle.getArea(radius);

System.out.println("The area of the circle is... " + area);System.out.println("The area of the circle is... " + circle.getArea(Integer.parseInt(area)));

这里的圆是类圆的对象

Circle circle = new Circle(radius) //Note: circle cannot be accessed from main function create another object for class circle again in main

它应该有帮助


查看完整回答
反对 回复 2022-07-20
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信