宁波Java培训
达内宁波中心

13429669395

热门课程

达内:java内部类的类型

  • 时间:2015-12-08
  • 发布:宁波java培训
  • 来源:51cto


    宁波达内java培训专家指出,java中的内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。

    内部类分为: 成员内部类、局部内部类 、静态嵌套类 、匿名内部类 。

    1.成员内部类

    成员内部类是最普通的内部类,它的定义为位于另一个类的内部。

    成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法, 即使是private的 。虽然成员内部类可以无条件地访问外部类的成员,而外部类想访问成员内部类的成员却不是这么随心所欲了。在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问。

    如果成员内部类Inner用private修饰,则只能在外部类的内部访问,如果用public修饰,则任何地方都能访问; 如果用protected修饰,则只能在同一个包下或者继承外部类的情况下访问;如果是默认访问权限,则只能在同一个包下访问。

    2.局部内部类

    局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。

    在方法中定义的内部类只能访问方法中final类型的局部变量,这是因为在方法中定义的局部变量相当于一个常量,它的生命周期超出方法运 行的生命周期,由于局部变量被设置为final,所以不能再内部类中改变局部变量的值。

    3.静态嵌套类

    也称为静态局部类、嵌套内部类,就是修饰为static的内部类。声明为static的内部类,不需要内部类对象和外部类对象之间的联系,就是说可以直接引用outer.inner ,即不需要创建外部类,也不需要创建内部类。

    如果用static 将内部内静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性。 其次,内部类被静态化,因此Outter.Inner可以当做一个整体看,可以直接new 出内部类的对象。

    4.匿名内部类

    匿名内部类是编写代码时用得最多的,在编写事件监听的代码时使用匿名内部类不但方便,而且使代码更加容易维护。

    代码中需要给按钮设置监听器对象,使用匿名内部类能够在实现父类或者接口中的方法情况下同时产生一个相应的对象,但是前提是这个父类或者接口必须先存在才能这样使用。

    我们一般使用匿名内部类的方法来编写事件监听代码。切记,匿名内部类也是不能有访问修饰符和static修饰符的 。

    匿名内部类是唯一一种没有构造器的类,因此,匿名内部类的使用范围非常有限,大部分匿名内部类用于接口回调 。匿名内部类在编译的时候由系统自动起名为Outter$1.class。一般来说,匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写。

上一篇:达内集团获腾讯“2015年度影响力教育集团”奖
下一篇:2015年编程语言“钱景”盘点

达内java大数据班就业喜报,最高月薪达18000元

795万高校毕业生创历史新高,2017届毕业生就业近况几何?

达内Linux学员毕业2周就业率96%,最高薪资10000元

达内教育总裁韩少云受邀出席GIE国际教育峰会做主题演讲

选择城市和中心
贵州省

广西省

海南省