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

时间:2019-03-06 18:29:08

标签: java jcreator

我目前正在从事一个项目,并且不断收到错误消息。我被困住了并且已经联系了很多人(包括我的教练),现在我已经转向你们。

到目前为止,这是我的代码。

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(“圆形区域为...” +区域);

符号:可变区域

位置:CircleTest类

2个错误

2 个答案:

答案 0 :(得分:5)

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

 <ng-container matColumnDef="weight">
    <th mat-header-cell *matHeaderCellDef mat-sort-header> Weight </th>
    <td mat-cell *matCellDef="let element"> {{element.detail.weight}} </td>
  </ng-container>

对于您的变量,您不需要“区域”,因为它是计算得出的。另外,除了构造函数外,您不应该为任何东西分配半径:

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;  
    }

}

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

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

最后,在 public Circle(int r) { radius = r; } 中,您不需要传入的半径或“区域”;只需返回计算值(使用“半径”而不是“ r”中存储的值)即可:

getArea()

放在一起,您的Circle类应该更像:

    public double getArea()
    {
        return Math.PI * radius * radius;  
    }

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

答案 1 :(得分:-1)

您尚未定义变量>>> a = "\x31\xC0\x50\x68\x74\x76" >>> print(''.join([hex(ord(x))[1:] for x in a])) 'x31xc0x50x68x74x76' r来帮助解决此问题

area替换为double area = getArea(r);

double area = circle.getArea(radius);System.out.println("The area of the circle is... " + area);

这里的圆是Class圆的对象

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

应该有帮助

编辑:这是有关错误What does a "Cannot find symbol" compilation error mean?

的链接