如何消除代码中的 'cannot find symbol' 错误?
How to get rid of the 'cannot find symbol' errors in my code?
我目前正在做一个项目,但我不断收到错误消息。我被困住了,联系了很多人(包括我的导师),现在我转向了你们。
到目前为止,这是我的代码。
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
位置:classCircleTest
.
C:\Users\jthom\My Work\Circle\src\CircleTest.java:33: 错误: 找不到符号
System.out.println("The area of the circle is... " + 面积);
符号:可变区
位置:classCircleTest
2 个错误
您还没有定义变量 r
和 area
来帮助解决这个问题
将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)));
这里的圆是Class圆
的一个对象
Circle circle = new Circle(radius) //Note: circle cannot be accessed from main function create another object for class circle again in main
应该会有帮助
编辑:这里是link关于错误What does a "Cannot find symbol" compilation error mean?
让我们从 class 圈开始。这是您的原始代码:
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;
}
}
对于您的变量,您不需要 "area",因为它是计算出来的。此外,除了在构造函数中,你不应该将半径分配给任何东西:
private int radius;
//private double area = getArea(); <-- don't need this variable at all
您将 "r" 传递给构造函数,但随后错误地尝试将 "radius" 值分配给它。这是倒退的;您应该将 "r" 值分配给 "radius" 而不是:
public Circle(int r)
{
radius = r;
}
最后,在getArea()
中,不需要传入半径,或者"area";只是 return 计算值(使用 "radius" 中的存储值,而不是 "r"):
public double getArea()
{
return Math.PI * radius * radius;
}
放在一起,您的圈子 class 应该看起来更像:
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() 方法。
我目前正在做一个项目,但我不断收到错误消息。我被困住了,联系了很多人(包括我的导师),现在我转向了你们。
到目前为止,这是我的代码。
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
位置:classCircleTest
.
C:\Users\jthom\My Work\Circle\src\CircleTest.java:33: 错误: 找不到符号
System.out.println("The area of the circle is... " + 面积);
符号:可变区
位置:classCircleTest
2 个错误
您还没有定义变量 r
和 area
来帮助解决这个问题
将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)));
这里的圆是Class圆
的一个对象Circle circle = new Circle(radius) //Note: circle cannot be accessed from main function create another object for class circle again in main
应该会有帮助
编辑:这里是link关于错误What does a "Cannot find symbol" compilation error mean?
让我们从 class 圈开始。这是您的原始代码:
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;
}
}
对于您的变量,您不需要 "area",因为它是计算出来的。此外,除了在构造函数中,你不应该将半径分配给任何东西:
private int radius;
//private double area = getArea(); <-- don't need this variable at all
您将 "r" 传递给构造函数,但随后错误地尝试将 "radius" 值分配给它。这是倒退的;您应该将 "r" 值分配给 "radius" 而不是:
public Circle(int r)
{
radius = r;
}
最后,在getArea()
中,不需要传入半径,或者"area";只是 return 计算值(使用 "radius" 中的存储值,而不是 "r"):
public double getArea()
{
return Math.PI * radius * radius;
}
放在一起,您的圈子 class 应该看起来更像:
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() 方法。