初探匿名内部类

Java有多种内部类,在学习安卓这门课的过程中,最先接触到的是匿名内部类。Java匿名内部类的语法规则如同匿名数组一样,当你只需要创建一个类的对象而且用不上它的名字时,使用内部类可以使代码看上去更简洁清楚。

例如:对于View的点击事件,当按钮较少或者只有一个按钮时,就不需要在单独创建一个类实现OnClickListener()接口了,可以直接创建OnClickListener()的匿名内部类传入按钮的setOnClickListener()参数中,具体代码如下:

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

button1.setOnClickListener(new OnClickListener(){

@override

public void onClick(View v){

Log.i("定义属性响应按钮点击事件");

}

});

在Java的事件处理的匿名适配器中,匿名内部类被大量使用。有一点需要注意的是,匿名内部类由于没有名字,所以它没有构造参数(但是如果这个匿名内部类继承了一个只含有带参数构造函数的父类,创建它的时候必须带上这些参数,并在实现的过程中使用super关键字调用相关内容)。如果你想初始化它的成员变量,有下面几种方法:

1、如果是在一个方法的匿名内部类,可以利用这个方法传进你想要的参数,不过记住,这些参数必须被声明为final。

2、将匿名内部类改造成有名字的局部内部类,这样就可以拥有构造函数了。

3、在这个匿名内部类中使用初始化代码块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值