日期:2014-05-20  浏览次数:20750 次

初学者问题, 在 java中一个创建对象的语法 怎么理解?
初学java 看到这个语法, new一个对象后面跟着一个大括号,里面是成员定义,请问是什么意思?
见    private ServiceConnection myServiceConn = new ServiceConnection() 这一行。



 import android.content.ServiceConnection;

 public class MyListActivity extends ListActivity
 {
    // some other code ..
    // ...

    private ServiceConnection myServiceConn = new ServiceConnection() 
    {
        public void onServiceConnected(ComponentName className, IBinder service) 
        {  
        }
        public void onServiceDisconnected(ComponentName className) 
        {
        }
    };
}
java android

------解决方案--------------------


万恶的拼音输入法
接口
------解决方案--------------------
这是一个匿名内部类,效果等同于
class Example extends serviceConnection(){
        public void onServiceConnected(ComponentName className, IBinder service) 
        {  
        }
        public void onServiceDisconnected(ComponentName className) 
        {
        }
}
private ServiceConnection myServiceConn=new Example();

也就是说匿名内部类就相当于一个继承了指定对象或实现了指定接口的类的实例。

------解决方案--------------------
匿名内部类,ServiceConnection()不是一个类而是一个接口或者抽象类,大括号里面的是它必须要实现的方法。
------解决方案--------------------