Re: [問題] 請教Main Class無法呼叫子類別

看板java作者 (山姆)時間12年前 (2013/07/07 20:59), 編輯推噓4(402)
留言6則, 5人參與, 最新討論串3/3 (看更多)
真的非常感謝 tkcn 前輩指導 其實我不懂inner class 我這樣寫是因為看了一個老師的寫法我照著練習,但是老師在Eclipse裡 一樣的寫法是完全可行的真的!!我有影片 附上位址https://www.youtube.com/watch?v=Cly8MWf7C6M
所以我懷疑是不是我的NETBEANS哪有理有問題? 看了前輩的文章跟指導的確解決了我的問題 感謝您!! 我以為老師的寫法就是一般子繼承父的寫法。 可以讓我在打擾一下嗎 抱歉不是我不願意看書或查資料 只是如果前輩直接教導讓我更深刻 是因為我的父類別 寫了PUBLIC修飾子嗎 才會變成inner class 那inner class在什麼時候比較恰當 其實我在書中目前也還沒有看到這樣應用 感謝前輩!! ※ 引述《tkcn (sayuan)》之銘言: : 這篇看完應該可以解決所有疑問: http://c2.com/cgi/wiki?InnerClass : 這邊點出幾個問題, : 1. namespace: : 你是在練習繼承, : 但因為把 sub class 同時也寫成了 inner class, : 導致觀念更難釐清。 : 簡單的說,inner class 的名稱應該是 SuperClass.SC, : SuperClass.SC SCDEMO = new SuperClass.SC(); : 所以改成上述後,你會遇到下一個問題: : an enclosing instance that contains SuperClass.SC is required : 2. 上面那篇提到: : "An instance of an inner class can only live : attached to an instance of the outer class" : 你需要 SuperClass 的 instance,才能 instantiate SC。 : SuperClass.SC SCDEMO = new SuperClass().new SC(); : 現在程式可以動了,不過多產生了一個 SuperClass instance, : 真的有這個必要嗎? : 3. 也許你要的是 static inner class : static inner class 像是多了一層 namespace, : 所以你不再需要 outer class 的 instance 了。 : 將 SC 加上 static 修飾後,你就可以寫: : SuperClass.SC SCDEMO = new SuperClass.SC(); : 話說回來,還在釐清繼承的觀念, : 最好還是暫時先避開 inner class 的使用吧。 : ※ 引述《samxpjp (山姆)》之銘言: : : 各位大大我再練習 繼承的寫法但是遇到了一個問題 如下 : : 請各位高手指點 : : package inheritancedemo; : : //父類別 : : public class SuperClass { : : public String Name; : : public int Age; : : //子類別 : : class SC extends SuperClass{ : : public int ID; : : } : : } : : ---------------------------------------------- : : package InheritanceDemo; : : /** : : * : : * @author sam : : */ : : public class SubClassDemo { : : /** : : * @param args the command line arguments : : */ : : public static void main(String[] args) { : : SC SCDEMO=new SC(); <--一直說找不到SC,但改成父類別卻可以 : : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.12.160.233

07/07 21:18, , 1F
inner class 就是包在別的 class 中的 class
07/07 21:18, 1F

07/08 00:29, , 2F
原po你把 {} 看歪了啦 ~
07/08 00:29, 2F

07/08 11:21, , 3F
老話一句 程式99.99%不會錯 基本上都是人為的錯XDDD
07/08 11:21, 3F

07/08 11:48, , 4F
到現在你能發現 Java 的錯,不是不可能,只能說很神
07/08 11:48, 4F

07/08 11:58, , 5F
我看了到}的位置錯了導致變成 inner class 是小弟我不才
07/08 11:58, 5F

07/08 12:00, , 6F
再次感謝各位前輩.
07/08 12:00, 6F
文章代碼(AID): #1HsMOjmz (java)
文章代碼(AID): #1HsMOjmz (java)