运行我的程序时,出现以下错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
at CylinderTest.main(Cylinder.java:42)
我确信有一个简单的解决方案,但我是一个没有经验的程序员,对我而言,它似乎应该有效。
程序描述:编写一个名为CylinderTest.java的类并声明 一组三个Cylinder对象,用于调用您声明的方法 圆筒类。确保从中调用所有类方法 主要()。让main()显示volume()返回的值并验证 手工计算返回的值(纸/铅笔)。提示用户 输入每个Cylinder对象的半径和高度值 在阵列中。
public class Cylinder
{
private double radius;
private double height;
public Cylinder(double radius, double height)
{
this.radius = radius;
this.height = height;
}
public double getRadius()
{
return radius;
}
public double getHeight()
{
return height;
}
public double volume()
{
return radius*radius*height*3.1416;
}
}
public class CylinderTest
{
public static void main(String[] args)
{
Cylinder[] myCylinder = new Cylinder[3];
myCylinder [0] = new Cylinder (2,7);
myCylinder [1] = new Cylinder (9,3);
myCylinder [2] = new Cylinder (12,4);
for (Cylinder c: myCylinder)
{
System.out.println("*******");
System.out.println("Radius: " + c.getRadius());
System.out.println("Height: " + c.getHeight());
System.out.println("Volume: " + c.volume());
System.out.println("*******");
}
}
}
答案 0 :(得分:1)
线程“main”中的异常java.lang.Error:未解析的编译 问题:
在CylinderTest.main(Cylinder.java:42)
由于Cylinder
文件中第42行存在错误
Cylinder.java
答案 1 :(得分:1)
这是因为您在一个文件中有两个单独的公共类。将CylinderTest拆分为自己的文件。通常,有一个分隔测试类的目录结构很有用:
src
main
java
test
java
您还应该为Cylinder(例如)org.me
创建一个包名在这种情况下,两个类都应该有
package org.me;
在顶部。
您应该使用IDE(例如Eclipse或Netbeans),这会告诉您在尝试运行它之前存在编译错误。通常运行程序有错误是一个很糟糕的想法,通常很难分辨到哪里和发生了什么。但是,Eclipse通常会提供一个链接到违规行的堆栈跟踪。
答案 2 :(得分:0)
Woot4Moo解释了异常的直接原因。基本上,您不能运行使用具有编译错误的类的程序。在尝试运行程序之前修复所有编译错误:
如果您在Eclipse中访问该文件,则编译错误应标记为红色。
如果工作区中存在编译错误,您可以将Eclipse配置为不允许运行代码。
由于我们无法看到实际的编译错误,我无法确定这一点。但是,我怀疑基本问题是你在一个文件中有两个顶级public
类(称为“Cylinder.java”)。你不能用Java做到这一点。非嵌套public
类必须位于单独的源文件中。 (您可以使用“package private”类来完成此操作,但这是Bad Practice。)
修复方法是将Cylinder和CylinderTest类放在单独的源文件中。
(理想情况下,你还应该添加包声明,但我猜你的导师还没有向你解释那些。)