看板 java 關於我們 聯絡資訊
真的非常感謝 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
LPH66:inner class 就是包在別的 class 中的 class 07/07 21:18
cuteclare:原po你把 {} 看歪了啦 ~ 07/08 00:29
gmoz:老話一句 程式99.99%不會錯 基本上都是人為的錯XDDD 07/08 11:21
PsMonkey:到現在你能發現 Java 的錯,不是不可能,只能說很神 07/08 11:48
samxpjp:我看了到}的位置錯了導致變成 inner class 是小弟我不才 07/08 11:58
samxpjp:再次感謝各位前輩. 07/08 12:00