java中匿名內部類解讀分析

來源:互聯網
上載者:User

這段時間在看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();
}
};

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.