同包不同檔案,繼承介面,編譯出錯:java錯誤找不到符號
阿新 • • 發佈:2019-01-04
在同一個包中分不同的.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檔案。