看板 java 關於我們 聯絡資訊
※ 引述《ozone (加油)》之銘言: : 標題: [問題] 匿名內部類別的建構函數怎麼用? : 時間: Wed Apr 29 00:56:39 2009 : : 請問匿名內部類別的建構函數怎麼用呀 : : final JPanel panel=new JPanel(){ : //constructor : public JPanel(){setSize(800,600);} //這樣做顯然失敗了... : : public void paintComponent(Graphics g){ : g.drawLine(50,50,100,100); : } : }; : : 剛google了一下但找不到...不好意思 教我一下吧 m一一m : 可以用有點奸詐的方法: JPanel panel = new JPanel() { { setSize(800,600); } public void balbalabl() { } } : → ozone:啊 我好像找到了 答案是不能有建構式! 是嗎?! 04/29 01:01 : 推 AI3767:也許...... 你可以在建構式裡加上 super(); 04/29 01:34 完全沒有關係. 所有 ctor 沒有特定 invoke superclass ctor 的話, 就已經是自動加上 super(); 的了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82
zeat:嗯, block是一種方式= =+ 04/29 13:30
AI3767:哈哈, 我看錯了,以為是說無法達到效果, 原來是無法編譯XD 04/29 13:45
sbrhsieh:instance initializer 是哪裡奸詐?! 04/29 18:06
ozone:咦 這是什麼方法啊 可以取代constructor嗎?? 04/30 01:02
ozone:查了一下 不曉這樣理解對不對:如果沒有要加參數 用{}就行了? 04/30 01:31
adrianshum:三樓: 所以我只說 "有點" XD 04/30 10:34
adrianshum:如非必要請寫 ctor. initializer block亂用可讀性很差 04/30 12:20
sbrhsieh:ctor 與 initializer 兩者不互斥 04/30 13:23
zeat:理論上 應用是不同的 不能取代 04/30 14:27
ozone:剛試了一下 initializer似乎是跑在constructor前面的?! 05/04 02:18