java匿名内部类
添加时间:2013-5-3 点击量:
这段时候在看android,看到了java里面的匿名内部类,在印象傍边.net里面不支撑匿名内部类。
匿名类是不克不及有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一项目组来声明它们。这就要采取另一种情势的new语句,如下所示:
new <类或接口> <类的主体>
这种情势的new语句声明一个新的匿名类,它对一个给定的类进行扩大,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的成果而返回。要扩大的类和要实现的接口是new语句的操纵数,后跟匿名类的主体。若是匿名类对另一个类进行扩大,它的主体可以接见类的成员、覆盖它的办法等等,这和其他任何标准的类都是一样的。若是匿名类实现了一个接口,它的主体必须实现接口的办法。
如:
- interface pr
- {
- void print1();
- }
- public class noNameClass
- {
- public pr dest()
- {
- return new pr(){
- public void print1()
- {
- System.out.println(Hello world!!);
- }
- };
- }
- public static void main(String args[])
- {
- noNameClass c=new noNameClass();
- pr hw=c.dest();
- hw.print1();
- }
- }
pr也可所以一个类然则你外部调用的办法必须在你的这个类或接口中声明外部不克不及调用匿名类内部的办法
摘自:http://blog.sina.com.cn/s/blog_62ea4cf40100mubj.html
android中点击事务
Button btn=(Button)this.findViewById(R.id.button1);
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
new 是建树一个 Button.OnClickListener对象 ,后面一个 {}
默示这个括号中的操纵感化于这个默认的对名象,而上方的Java法度中后面是一个函数体。
这个用法的感化是:创建一个对象的实例,并且 override
它的一个函数。它是对 OnClickListener
接口的一个实现。
android多线程中
private Runnable mRunnable = new Runnable()
{
@Override
public void run() {
// TODO Auto-generated method stub
try
{
Thread.sleep(5000);
mHandler.sendMessage(mHandler.obtainMessage());
}
catch(InterruptedException e)
{
}
}
};
public Handler mHandler = new Handler()
{
public void handleMessage(Message msg)
{
super.handleMessage(msg);
Reflesh();
}
};
所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》
这段时候在看android,看到了java里面的匿名内部类,在印象傍边.net里面不支撑匿名内部类。
匿名类是不克不及有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一项目组来声明它们。这就要采取另一种情势的new语句,如下所示:
new <类或接口> <类的主体>
这种情势的new语句声明一个新的匿名类,它对一个给定的类进行扩大,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的成果而返回。要扩大的类和要实现的接口是new语句的操纵数,后跟匿名类的主体。若是匿名类对另一个类进行扩大,它的主体可以接见类的成员、覆盖它的办法等等,这和其他任何标准的类都是一样的。若是匿名类实现了一个接口,它的主体必须实现接口的办法。
如:
- interface pr
- {
- void print1();
- }
- public class noNameClass
- {
- public pr dest()
- {
- return new pr(){
- public void print1()
- {
- System.out.println(Hello world!!);
- }
- };
- }
- public static void main(String args[])
- {
- noNameClass c=new noNameClass();
- pr hw=c.dest();
- hw.print1();
- }
- }
pr也可所以一个类然则你外部调用的办法必须在你的这个类或接口中声明外部不克不及调用匿名类内部的办法
摘自:http://blog.sina.com.cn/s/blog_62ea4cf40100mubj.html
android中点击事务
Button btn=(Button)this.findViewById(R.id.button1);
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
new 是建树一个 Button.OnClickListener对象 ,后面一个 {}
默示这个括号中的操纵感化于这个默认的对名象,而上方的Java法度中后面是一个函数体。
这个用法的感化是:创建一个对象的实例,并且 override
它的一个函数。它是对 OnClickListener
接口的一个实现。
android多线程中
private Runnable mRunnable = new Runnable()
{
@Override
public void run() {
// TODO Auto-generated method stub
try
{
Thread.sleep(5000);
mHandler.sendMessage(mHandler.obtainMessage());
}
catch(InterruptedException e)
{
}
}
};
public Handler mHandler = new Handler()
{
public void handleMessage(Message msg)
{
super.handleMessage(msg);
Reflesh();
}
};
所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》