首页 > 编程知识 正文

匿名类和内部类的区别,什么叫匿名内部类

时间:2023-05-03 19:06:52 阅读:62884 作者:513

安卓开发中经常会遇到匿名类(和匿名内部类)的使用,那么匿名类和一般使用的类有什么不同呢?

实现的功能相同,但使用匿名更简洁方便。 从形式上来说,感觉像是新闻的接口和班级,但我们

接口记住new不能出现,并重新编写内部所需接口的方法。 new现在给出了实现接口

方法的对象,但看不到此对象的类名,因此称为匿名类。 下面是具有相同功能的两个代码,分别用上述两种写法

实现:

匿名类

形式如下。 新冠

1 button.setonclicklistener (监听器);

2

3 private view.onclicklistenerlistener=new view.onclick listener (

4 {

5 @Override

6公共语音链接(查看) )。

7 {

8 string phonenum=phone edittext.gettext ().toString );

9 intent intent=new intent (Android.intent.action.call ),uri.parse ) tel : (phonenum );

10开始活动(英特尔);

11 }

12 }; 这里需要分号

自定义接口的类:

button.setonclicklistener (newbuttonlistener ) );

privatefinalclassbuttonlistenerimplementsview.onclick listener

{

公共语音在线(查看) ) ) ) )。

{

edittext移动性文本=(edittext ) findviewbyid(r.id.mobile );

string mobile=mobile text.gettext ().toString );

Intent intent=new Intent (;

intent.set action (Android.intent.action.call );

intent.setdata (uri.parse (tel : ) mobile );

开始活动(intent;

}

}

匿名类与匿名内部类不同

匿名类与匿名内部类不同。 后者也经常使用。 匿名内部类是内部类的一种,使用起来更简单,但并不是在任何情况下都需要使用。

thinkinginjava3th说:

简而言之,匿名内部类是未命名的内部类。 在什么情况下需要使用匿名内部类? 如果满足以下几个条件,则使用匿名内部类是比较

适当的:

只使用类的一个实例。

班级在定义后马上使用。

类非常小(SUN建议不超过4行代码) )。

给类命名并不意味着代码更容易理解。

使用匿名内部类时,请注意以下原则:

匿名内部类不能有构建方法。

匿名内部类不能定义静态成员、方法和类。

匿名内部类不得为公共、受保护、私有或静态。

只能创建一个匿名内部类的实例。

匿名内部类必须位于new的后面,以便隐式实现接口或实现类。

由于匿名内部类是局部内部类,所以局部内部类的所有限制都是有效的。

向//方法返回匿名内部类

公共类parcel 6

{

publicContentscont (

{

返回新内容(

{

私有Inti=11;

公共空闲() )

{

returni;

}

(; 这里需要分号

}

publicstaticvoidmain (字符串[ ] args ) )。

{

Parcel6p=newParcel6(;

Contentsc=p.cont (;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。