作者adrianshum (Alien)
看板java
標題Re: [問題] 匿名內部類別的建構函數怎麼用?
時間Wed Apr 29 10:31:29 2009
※ 引述《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