java中匿名內(nèi)部類(lèi)解讀分析
這段時(shí)間在看android,看到了java里面的匿名內(nèi)部類(lèi),在印象當(dāng)中.net里面不支持匿名內(nèi)部類(lèi)。
匿名類(lèi)是不能有名稱(chēng)的類(lèi),所以沒(méi)辦法引用它們。必須在創(chuàng)建時(shí),作為new語(yǔ)句的一部分來(lái)聲明它們。這就要采用另一種形式的new語(yǔ)句,如下所示:
new <類(lèi)或接口> <類(lèi)的主體>
這種形式的new語(yǔ)句聲明一個(gè)新的匿名類(lèi),它對(duì)一個(gè)給定的類(lèi)進(jìn)行擴(kuò)展,或者實(shí)現(xiàn)一個(gè)給定的接口。它還創(chuàng)建那個(gè)類(lèi)的一個(gè)新實(shí)例,并把它作為語(yǔ)句的結(jié)果而返回。要擴(kuò)展的類(lèi)和要實(shí)現(xiàn)的接口是new語(yǔ)句的操作數(shù),后跟匿名類(lèi)的主體。如果匿名類(lèi)對(duì)另一個(gè)類(lèi)進(jìn)行擴(kuò)展,它的主體可以訪(fǎng)問(wèn)類(lèi)的成員、覆蓋它的方法等等,這和其他任何標(biāo)準(zhǔn)的類(lèi)都是一樣的。如果匿名類(lèi)實(shí)現(xiàn)了一個(gè)接口,它的主體必須實(shí)現(xiàn)接口的方法。
如:
- 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也可以是一個(gè)類(lèi)但是你外部調(diào)用的方法必須在你的這個(gè)類(lèi)或接口中聲明外部不能調(diào)用匿名類(lèi)內(nèi)部的方法
摘自:http://blog.sina.com.cn/s/blog_62ea4cf40100mubj.html
android中點(diǎn)擊事件
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 是建立一個(gè) Button.OnClickListener對(duì)象 ,后面一個(gè) {}
表示這個(gè)括號(hào)中的操作作用于這個(gè)默認(rèn)的對(duì)名象,而上面的Java程序中后面是一個(gè)函數(shù)體。
這個(gè)用法的作用是:創(chuàng)建一個(gè)對(duì)象的實(shí)例,并且 override
它的一個(gè)函數(shù)。它是對(duì) OnClickListener
接口的一個(gè)實(shí)現(xiàn)。
android多線(xiàn)程中
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();
}
};
相關(guān)文章
RestTemplate使用Proxy代理作為跳板發(fā)送請(qǐng)求
這篇文章主要為大家介紹了RestTemplate使用代理proxy作為跳板發(fā)送請(qǐng)求的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03SpringBoot2零基礎(chǔ)到精通之配置文件與web開(kāi)發(fā)
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說(shuō)是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開(kāi)發(fā)的腳手架,本篇讓我們一起學(xué)習(xí)配置文件以及web相關(guān)的開(kāi)發(fā)2022-03-03Hibernate多對(duì)一單項(xiàng)關(guān)聯(lián)
這篇文章主要介紹了Hibernate多對(duì)一單項(xiàng)關(guān)聯(lián),需要的朋友可以參考下2017-09-09Springboot+AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換
前端傳過(guò)來(lái)的時(shí)間參數(shù),后端可以自定義時(shí)間格式轉(zhuǎn)化使用,這樣想轉(zhuǎn)成什么就轉(zhuǎn)成什么。本文將利用自定義注解AOP實(shí)現(xiàn)時(shí)間參數(shù)格式轉(zhuǎn)換,感興趣的可以了解一下2022-04-04Java基于socket服務(wù)實(shí)現(xiàn)UDP協(xié)議的方法
這篇文章主要介紹了Java基于socket服務(wù)實(shí)現(xiàn)UDP協(xié)議的方法,通過(guò)兩個(gè)簡(jiǎn)單實(shí)例分析了java通過(guò)socket實(shí)現(xiàn)UDP發(fā)送與接收的技巧,需要的朋友可以參考下2015-05-05