3

Test.java と B.java はデフォルトのパッケージに含まれています。

ファイル Test.java (パブリック クラスを持たないファイルには任意の名前を付けることができるため) には以下が含まれます。

class A{}    

ファイル B.java には以下が含まれます。

class B extends A{}

B.java をコンパイルすると、次のようなエラーが表示されます。

B.java:1: error: cannot find symbol    
class B extends A{   
                ^
symbol: class A
1 error

コードの問題は何ですか?私を助けてください!

4

5 に答える 5

2

作成するにはコンパイルする必要がありTest.javaますA.class。次に、コンパイルを試みる必要があります。コンパイラは、デフォルトである現在のディレクトリをB.java見つけます。A.classCLASSPATH

C:\Temp\test>dir
 Volume in drive C is OSDisk
 Volume Serial Number is 1E37-6273

 Directory of C:\Temp\test

09/23/2012  10:48 PM    <DIR>          .
09/23/2012  10:48 PM    <DIR>          ..
09/23/2012  10:47 PM               100 B.java
09/23/2012  10:47 PM                68 Test.java
               2 File(s)            168 bytes
               2 Dir(s)  171,760,668,672 bytes free

C:\Temp\test>type Test.java
class A
{
    static {
        System.out.println("A");
    }
}
C:\Temp\test>Type B.java
class B extends A
{
    public static void main(String [] args)
    {
        new B();
    }
}
C:\Temp\test>javac Test.java

C:\Temp\test>dir
 Volume in drive C is OSDisk
 Volume Serial Number is 1E37-6273

 Directory of C:\Temp\test

09/23/2012  10:49 PM    <DIR>          .
09/23/2012  10:49 PM    <DIR>          ..
09/23/2012  10:49 PM               375 A.class
09/23/2012  10:47 PM               100 B.java
09/23/2012  10:47 PM                68 Test.java
               3 File(s)            543 bytes
               2 Dir(s)  171,760,668,672 bytes free

C:\Temp\test>javac B.java

C:\Temp\test>java B
A

C:\Temp\test>
于 2012-09-23T17:01:04.833 に答える
2

Aコンパイラは、言及されている場所と同じファイル内でクラスを探します (この場合はB.java)。importその後、クラスパスとリストでそれを探します。その後、同じパッケージ内のファイルを探しA.javaますが、このファイルは存在しません。どこにもないので… cannot find symbol

@Vikdor が推奨することを実行しますTest.java。最初にコンパイルします。

于 2012-09-23T16:57:02.730 に答える
0

クラスAを作成する

class A{}

クラスBを作成する

class B extends A{}

今これらを取りなさい:

1. class Aclass Bは、と同じパッケージに含まれclass Aている必要があるdefault access modifierため、パッケージレベルのアクセスのみが許可されます。

2. class A 最初にコンパイルしてから、コンパイルしますclass B

于 2012-09-23T17:17:19.450 に答える
0

最初に Test.java をコンパイルすると、A.class ファイルが作成されます。そうしないと、コンパイラはクラス A を見つける方法を知りません (A.class または A.java を探す方法しか知らないため)。

于 2012-09-23T17:01:48.047 に答える
0
   It's Working na..............

  //Test.java

   class A   

  {

  public static void main(String arg[])

    {

        System.out.println("A");

    }

 }

 //B.java

public class B extends A

{

    public static void main(String arg[])

    {

        System.out.println("B");

    }

 }
于 2012-09-23T17:08:17.437 に答える