0

プログラムを実行すると、次のエラーが発生します。

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

at CylinderTest.main(Cylinder.java:42)

簡単な解決策があると確信していますが、私は経験の浅いプログラマーであり、私にはそれがうまくいくはずだと思います。

プログラムの説明:CylinderTest.javaというクラスを作成し、3つのCylinderオブジェクトの配列を宣言して、Cylinderクラスで宣言したメソッドを呼び出します。すべてのクラスメソッドがmain()から呼び出されていることを確認してください。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("*******");
    }
}
}   
4

3 に答える 3

1

スレッド"main"java.lang.Errorの例外:未解決のコンパイルの問題:

CylinderTest.main(Cylinder.java:42)で

ファイルの42行目にエラーが存在するため、クラスCylinderをコンパイルできませんCylinder.java

于 2012-11-13T23:52:10.330 に答える
1

これは、1 つのファイルに 2 つの個別のパブリック クラスがあるためです。CylinderTest を独自のファイルに分割します。一般に、テスト クラスを分離するディレクトリ構造があると便利です。

src
   main
      java
   test
      java

Cylinder (たとえば) org.me のパッケージ名も作成する必要があります。

その場合、両方のクラスが持つ必要があります

package org.me;

頂点で。

IDE (Eclipse や Netbeans など) を使用する必要があります。これは、実行しようとする前にコンパイル エラーがあったことを示します。一般に、エラーのあるプログラムを実行することはお勧めできません。ただし、Eclipse は通常、問題のある行にリンクするスタック トレースを提供します。

于 2012-11-14T00:07:17.260 に答える
0

Woot4Moo は例外の直接の原因を説明しました。基本的に、コンパイル エラーのあるクラスを使用するプログラムは実行できません。プログラムを実行する前に、すべてのコンパイル エラーを修正します。

  • Eclipse でファイルにアクセスすると、コンパイル エラーに赤いフラグが付けられるはずです。

  • ワークスペースにコンパイル エラーがある場合にコードを実行できないように Eclipse を構成できます。

実際のコンパイル エラーが表示されないため、これについては確信が持てません。ただし、根本public的な問題は、1 つのファイル (「Cylinder.java」と呼ばれる) に2 つのトップレベル クラスがあることだと思います。Javaではそれを行うことはできません。ネストされpublicていないクラスは、別のソース ファイルにある必要があります。(「パッケージ プライベート」クラスでこれを行うことで回避できますが、それは悪い習慣です。)

これを修正するには、Cylinder クラスと CylinderTest クラスを別のソース ファイルに配置します。

(理想的には、パッケージ宣言も追加する必要がありますが、インストラクターがまだ説明していないと思います。)

于 2012-11-14T00:12:46.757 に答える