作者tkcn (小安)
看板java
标题Re: [问题] 请教一个基本问题
时间Sat Aug 21 23:58:15 2010
※ 引述《Arim (Arim5566)》之铭言:
: 初学java跟Android
: 想问一下关於下面程式码
: private Button.OnClickListenter calcBMI=new Button.OnClickListener()
: //这边的calcBMI应该是一个物件吧?,不太懂为什麽书上写这是一个函式
: { ......} //这边又配了一组大括号
: 大括号里面又定义且实作了public void Onclick(View v)...
: 如果calcBMI是一个函式的话不太懂为什麽没有写回传值以及参数而且又可以在里面又
: 定义实作函式
: 而如果是物件的话不太懂为什麽还可以配一组大括号给他,一般宣告物件不就是
: 写一行而已嘛?
: 主要是没看过这种写法
: 小弟恳求板友们给予指教 谢谢
两段分开来说。
前面那句是宣告&建立物件没错,
Button.OnClickListener 代表 OnClickListener 是 Button 的 static inner class。
所以应该是书本写错了 (我很好奇是哪一本书)
大括号那里则是 Anonymous subclass,
举例来说 (为求简短,所以这边就不用上方的例子了)
Runnable r = new Runnable(){
public void run(){
// do something here ...
}
}
这样的语法实际上是建立了一个继承於 Runnable 的物件,
并且 override 了 run 这个 method。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.183.195
1F:→ nvidia:匿名物件 08/21 23:59
2F:→ GoForward:11394篇 08/22 00:00
3F:→ qrtt1:bmi 就有可能是盖索林写的那本, 不过不知道原PO用哪一版了 08/22 10:13
4F:推 Arim:我是用第三板的书 08/22 16:12
5F:→ Arim:感谢大大的解释 08/22 16:15