首页 > Java > java教程 > java 匿名内部类

java 匿名内部类

高洛峰
发布: 2016-12-15 13:26:20
原创
1332 人浏览过

匿名类对于我现在的理解层面在于它方便灵活了对接口以及抽象类方法的实现,如果你只需要在一个地方对某个对象实现相应的用法,那么你就可以考虑使用匿名内部类啦~。光说一定会晕的那么我们用小例子说话: 

引用

下面的例子是android给按钮绑定事件的常用方法


Java代码 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

public class Activity1 extends Activity { 

    OnClickListener listener1 = null; 

    Button button1; 

    /** Called when the activity is first created. */ 

    @Override 

    public void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.activity1); 

        listener1 = new OnClickListener() {//OnClickListener是一个接口 

            public void onClick(View v) {//onClick()方法是这个借口唯一的方法 

                Bundle bundle = new Bundle(); 

                bundle.putString("store", "数据来自Activity1"); 

                Intent mIntent = new Intent(); 

                mIntent.putExtras(bundle); 

                setResult(RESULT_OK, mIntent); 

                finish(); 

            

        }; 

        button1 = (Button) findViewById(R.id.button3); 

        button1.setOnClickListener(listener1); 

                ... ... ...(还有代码在下面~)

登录后复制

这个就用到了内部类,原因在于当这个按钮按下时只会触动专属于它的一个事件,不会再有其他事件了,所以使用内部类就可以把实现和执行动作一并搞定!有点像javascript的匿名函数哦~
在给几个小例子:

Java代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package com.eoeAndroid.activity; 

   

   

interface OnClickListener{ 

    void onClick(String s); 

   

   

public class testListener { 

       

    public static void main(String... strings){ 

        OnClickListener listener = new OnClickListener(){ 

   

            @Override 

            public void onClick(String s) { 

                // TODO Auto-generated method stub 

                System.out.println(s); 

            

               

        }; 

        listener.onClick("OK!"); 

    

   

}

登录后复制

这个代码相当于将OnClickListener接口实现后引用,就好比如下代码:

Java代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package com.eoeAndroid.activity; 

   

   

interface OnClickListener{ 

    void onClick(String s); 

   

class MyListener implements OnClickListener{ 

   

    @Override 

    public void onClick(String s) { 

        // TODO Auto-generated method stub 

        System.out.println(s); 

    

       

public class testListener { 

       

    public static void main(String... strings){ 

        MyListener listener = new MyListener(); 

        listener.onClick("OK!"); 

    

   

}

登录后复制



更多java 匿名内部类相关文章请关注PHP中文网!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板