1. 程式人生 > >同包不同檔案,繼承介面,編譯出錯:java錯誤找不到符號

同包不同檔案,繼承介面,編譯出錯:java錯誤找不到符號

在同一個包中分不同的.java檔案進行繼承實驗時,出現編譯錯誤:java錯誤找不到符號

程式如下:

①Test.java

package test;
class Test 
{
public static void main(String[] args) 
{
Person p = new Person("lpp");
System.out.println(p);
}
}

②Person.java

package test;
public class Person  //要想此類在同包、不同檔案使用,必須定義成public型別的
{
String name;
public Person(String name)
{
this.name = name;
}
}

問題所在:

之所以出現這個問題是因為在編譯的時候使用的格式為javac -d . Test.java

解決方案:

編譯時按照如下格式: javac -d . *.java

執行時按照如下格式:java test.Test

總結:

對於同一個包下定義了多個.java檔案的情況,在編譯時需注意,使用javac -d . *.java的方法可以對包下面所有public型別的class統一編譯,若只對一個特定類進行編譯,例如javac -d . Test.java,則會出現“找不到符號”的錯誤,原因是其他public 類沒有被編譯成.class檔案。