Re: [問題] 匿名內部類別的建構函數怎麼用?

看板java作者 (Alien)時間16年前 (2009/04/29 10:31), 編輯推噓8(802)
留言10則, 5人參與, 最新討論串2/3 (看更多)
※ 引述《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

04/29 13:30, , 1F
嗯, block是一種方式= =+
04/29 13:30, 1F

04/29 13:45, , 2F
哈哈, 我看錯了,以為是說無法達到效果, 原來是無法編譯XD
04/29 13:45, 2F

04/29 18:06, , 3F
instance initializer 是哪裡奸詐?!
04/29 18:06, 3F

04/30 01:02, , 4F
咦 這是什麼方法啊 可以取代constructor嗎??
04/30 01:02, 4F

04/30 01:31, , 5F
查了一下 不曉這樣理解對不對:如果沒有要加參數 用{}就行了?
04/30 01:31, 5F

04/30 10:34, , 6F
三樓: 所以我只說 "有點" XD
04/30 10:34, 6F

04/30 12:20, , 7F
如非必要請寫 ctor. initializer block亂用可讀性很差
04/30 12:20, 7F

04/30 13:23, , 8F
ctor 與 initializer 兩者不互斥
04/30 13:23, 8F

04/30 14:27, , 9F
理論上 應用是不同的 不能取代
04/30 14:27, 9F

05/04 02:18, , 10F
剛試了一下 initializer似乎是跑在constructor前面的?!
05/04 02:18, 10F
文章代碼(AID): #19zxm2rU (java)
文章代碼(AID): #19zxm2rU (java)