考虑在同一个包中声明的以下两个 Java 类: 为什么 CircleTest 类不能编译,可以进行哪些更改以使其工作以及更改的原因。请帮助我,谢谢:)。
编译时的错误是:它说必须将 CircleTest 类定义为它自己的文件,circumf 未解析不是字段,Circle.rad 不可见并且 PI 未解析为变量。
public class Circle {
private double rad;
static int count;
public Circle(double radius) {
this.rad = radius;
count++;
}
double circumf() { return 2 * PI * rad; }
}
public class CircleTest {
public static void main(String[] args) {
Circle diskA = new Circle(5);
Circle diskB = new Circle(3);
Circle diskC = diskA;
System.out.println("Circum A:" + diskA.circumf);
System.out.println("Area B:" + PI*diskB.rad*diskB.rad);
}
}
最佳答案
第一个问题:rad
是 private
您将无法从您的测试类(class)中访问它。阅读 access modifier .
将其更改为:public double rad
;
或者更好的是,将其保留为私有(private)并使用 getter 方法:
private double rad;
public double getRad() {
return rad;
}
第二题:
System.out.println("Circum A:" + diskA.circumf);
您正在尝试调用一个方法,所以这应该是:
System.out.println("Circum A:" + diskA.circumf());
第三题:
添加
static import
使用 PI
.import static java.lang.Math.PI;
第四个问题:
正如@kevin-esche 提到的:
由于
CircleTest
是 public
它必须在一个名为 CircleTest.java
的文件中为了能够编译。或删除 public
标识符。
关于java - 为什么这个 CircleTest 类不能编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37278313/