码迷,mamicode.com
首页 > 编程语言 > 详细

【java基础】内部类,局部内部类,匿名内部类、静态内部类、接口中的内部类

时间:2015-03-31 00:39:34      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

内部类:

1、定义在一个类中的内部类,内部类的实例化伴随着外围类所定义的方法来构造,内部类对象有外围类的隐式引用,所以内部类可以直接访问外围类的外围类的域,包括私有的,这是内部类的访问特权,所以比常规类功能更加强大。

2、内部类可以对同一个包中的其他类隐藏起来,不过可以通过 OuterClass.InnerClass来引用public声明的内部类。

 

局部内部类:

1、内部类挪到方法内部,与内部类相比,局部内部类不仅可以访问定义他们的外部类,还可以并且仅可以访问声明为final的局部变量。

2、类名不能被public、private修饰,默认是default

3、作用域进作用于声明它的方法中,所以即使这个类的其他方法也不知道他的存在。

 

匿名内部类:

1、将内部类的类名省去,只创建这个类的对象,成为匿名内部类。

2、将想要定义一个回调函数,但是不想编写大量代码,可以考虑匿名内部类。

3、语法:

Class OuterClass{

    //外围类的域和方法...

   SuperType 对象名 =  new SuperType(construction params){//当SuperType是接口的时候,构造参数必须为空

     //内部类的域和方法...


     }

}

4、获得匿名内部类的方法: new Object().getClass().getEnclosingClass()

 

静态内部类:

1、内部类被static修饰,这样访问特权就没有了,当内部类不需要访问外围类的对象的时候,就定义为静态内部类。

 

接口中的内部类:

1、接口中的域默认是public static final的所以必须立即初始化,并且不能再被赋值,接口中定义的内部类也默认是public static的(方法都默认为public)

 

【java基础】内部类,局部内部类,匿名内部类、静态内部类、接口中的内部类

标签:

原文地址:http://www.cnblogs.com/lucky-star-star/p/4378601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!