我无法弄清楚我的代码有什么问题。我在同一目录中创建了两个不同的文件,但我一直收到此错误。感谢您的任何见解。
第一个文件是:
public class CircleDriver{
public static void main (String[] args){
Circle aCircle = new Circle();
aCircle.setColor("green");
aCircle.setRadius(10);
aCircle.display();
Double circleArea = aCircle.computeArea();
Double circumference = aCircle.computeCircumference();
System.out.println("circle area: " + circleArea);
System.out.println("circle circumference: " + circumference);
System.out.println();
}
}
第二个文件是:
public class Circle{
public double circumference;
public double PI = 3.14159;
public double radius;
public double area = 0;
public String color = "";
public void setColor(String newColor){
color = newColor;
}
public void setRadius(double newRadius){
radius = newRadius;
}
public void display(){
System.out.println("I am a circle");
System.out.println("my color is " + color);
System.out.println("my radius is " + radius);
}
public double computeArea(){
return PI * radius * radius;
}
public double computeCircumference(){
return 2 * PI * radius;
}
}
当我尝试编译第一个文件时,我在命令提示符下得到了这个:
CircleDriver.java:3: error: cannot find symbol
Circle aCircle = new Circle();
^
symbol: class Circle
location: class CircleDriver
CircleDriver.java:3: error: cannot find symbol
Circle aCircle = new Circle();
^
symbol: class Circle
location: class CircleDriver
`2 errors
答案 0 :(得分:1)
您是否将目录标记为源文件夹?他们也在同一个包里吗?如果没有,您应该使用导入。 我已经在同一个包中复制了你的类,它工作正常。输出是:
I am a circle
my color is green
my radius is 10.0
circle area: 314.159
circle circumference: 62.8318
答案 1 :(得分:0)
它们应该在相同的包中。如果不是,则必须使用完全限定名称(包名称)导入Circle
类。
在eclipse的情况下,它会编译所有必需的文件。在使用命令行时,请确保同时编译Circle.java
和CircleDriver.java
:
javac -cp . Circle.java CircleDriver.java
答案 2 :(得分:0)
您正在编译第一个文件,这意味着第二个文件Circle尚未编译。首先尝试编译第二个和第一个。
答案 3 :(得分:0)
您的代码似乎没问题,所以我假设这些文件位于不同的包中,或者编译器无法看到Circle.java
类。
第一个问题的解决方案是:
将两个类移动到同一个包中。它们必须在顶部具有相同的包声明(例如package com.mycompany.myapp;
)
导入圈子类:import path.to.circle.clazz.Circle;
使用完全限定名称:path.to.Circle circle = new path.to.Circle();
如果是编译器,则需要使用javac命令同时编译这两个类:javac -cp . Circle.java CircleDriver.java