注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

Android开发之九内部类和匿名类  

2014-11-19 21:44:14|  分类: Android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Android开发之九内部类和匿名类

Android中,其实是在Java中,有内部类和嵌套类之分,其实区分也很简单,只要在类的前面加上static关键字即可,举例如下:

内部类:

         Public class OutClass{

                                     Public final int num = 0;

                Public class InnerClass{

                    Int num = 0;

}

}

嵌套类:

       

         Public class OutClass{

                                     Public final int num = 0;

                Public static class InnerClass{

                    Int num = 0;

}

}

那么二者有什么区别?又分别有什么作用呢?

区别很简单,内部类访问外部类的成员是透明的,而嵌套类不是;内部类不可以有静态数据和字段 ,也不能包含嵌套类,但是嵌套类这些都是许可的。或许换句话说更让一些人明白,那就是说嵌套类更类似于C++C#的内部类。

内部类又有有名和匿名类之分,引用一个Java编程思想中的例子:

Public class OutClass{

  Public Contents contents(){

     Return new Contents(){

        Private int I = 11;

        Public int value(){return I;}

}

}

}

还比如前面遇到的回调:

 Public void GetCallBack(new Interface(){

   ……

})

这些都算。那么会有人问一下,为什么需要内部类和嵌套类呢?他有什么作用呢?

这个JAVA编程思想上有详细的介绍,这里只简单罗列一些用过的和认为有用的,第一个是在接口内部一般来说不能放置实现的代码,但是嵌套类可以,如下:

  Public interface ClassNestInterface{

      Void test();

      Class Test implements ClassNetsInterface{

         Public void What(){System.out.println(“is ok”);}

}

Public static void main(String[] args)

{

   New Test().What();

}

 

}

需要注意的在接口里默认嵌套类就是static,所以这里不用再显示的加上了。

内部类呢?

个人觉得最主要是在一个类里可以通过内部类实现不同的接口继承,这个就不再举例子了,“思想”那本书上有。在前面的开发中也用其实现过闭包和回调。

书上还提到了框架使用内部类完成了大量的工作,这个对JAVA不是太熟悉,所以不敢深入的说。

多少年后,重读Java编程思想,觉得这本书的深度超过了想象,曾经不想学Java,看来因为Android还是得认真得学习一下啊。

  评论这张
 
阅读(371)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017