我的代碼中出現一個錯誤,找不到符號,我到處搜索,但仍然找不到解決方案
class p1 {
protected void aFancyMethod() {
System.out.println("what a fancy method");
}
}
public class p2 extends p1 {
public static void main(String argv[]) {
p1 p = new p1();
p.aFancyMethod();
}
}
我的錯誤
p2.java:3: error: cannot find symbol
public class p2 extends p1 {
^
symbol: class p1
p2.java:5: error: cannot find symbol
p1 p = new p1();
^
symbol: class p1
location: class p2
p2.java:5: error: cannot find symbol
p1 p = new p1();
^
symbol: class p1
location: class p2
3 errors
uj5u.com熱心網友回復:
假設你有單獨的檔案類p1和p2...如果他們被命名p1.java,并p2.java和他們在同一個目錄,然后它會被罰款這樣做:
javac p2.java
但是,如果您有P1.java(大寫 P)或任何其他檔案名,p1那么p1在編譯 class 時,javac 將無法找到用于編譯 class 的源代碼p2。
檢查您的檔案名。(不知道windows等不區分大小寫的作業系統是否會存在這個問題。)
或者,無論檔案名如何,這都應該沒問題:
javac *.java
無論如何,建議是:
- 類名以大寫字母開頭
- 每個類都在它自己的
.java檔案中。 - java 檔案的名稱與類名完全匹配,包括字母大小寫。
uj5u.com熱心網友回復:
Java 中宣告的每個類都應該有自己的檔案。可以將兩個類放在同一個檔案中,但既不推薦也不好的做法。
程式的入口點是main()位于 P2 中的函式。但問題是,即使在您的程式通過呼叫運行之前main(),P2也會嘗試擴展實際上并不存在的 P1。
你的類應該被分成兩個不同的.java檔案:
P1.java(檔案)
public class P1 {
protected void aFancyMethod() {
System.out.println("what a fancy method");
}
}
P2.java(檔案)
public class P2 extends P1 {
public static void main(String[] args) {
P1 p1 = new P1();
p1.aFancyMethod();
}
}
注意:您可以看到,我在類名稱的開頭使用了大寫字符,作為類命名約定。也可以看看:
https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html
uj5u.com熱心網友回復:
我的代碼中出現一個錯誤,找不到符號,我到處搜索,但仍然找不到解決方案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/311111.html
標籤:爪哇
上一篇:ActiveMQArtemis前綴為“jms.topic”。到SpringBootClient上定義的所有主題名稱
