继续获取我的程序的错误代码,有人可以看看吗?

时间:2012-11-13 23:50:36

标签: java

运行我的程序时,出现以下错误:

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("*******");
    }
}
}   

3 个答案:

答案 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类放在单独的源文件中。

(理想情况下,你还应该添加包声明,但我猜你的导师还没有向你解释那些。)