首页 > 其他 > 详细

内部类相关

时间:2020-06-15 19:43:53      阅读:37      评论:0      收藏:0      [点我收藏+]

静态内部类、成员内部类、局部内部类、非公有类、匿名内部类


一般静态内部类(为了单例)和匿名内部类使用较多

静态内部类和成员内部类

  • 区别在于static,都可以访问外部类和被外部类访问private成员。
  • 成员内部类不能有静态变量、静态方法和静态类等(可以有final static常量),因为会造成内外部初始化问题。
  • 在访问外部类成员时,静态内部类用Phone phone=...;phone.属性/方法;//Phone外部类
    成员内部类用Phone.this.属性/方法;
    内部类被其他类使用时,静态内部类用Phone.CPU phone=new Phone.CPU();//CPU是Phone的静态内部类
    成员内部类用Phone phone=new Phone();Phone.CPU phone=phone.new CPU();

非公有类

  • 就是和public class同一java文件里之外的其他类,访问修饰符被缺省,一般不加。如果一个类中只有非公有类,那么类名可以与文件名不同。

局部内部类

  • 和成员内部类类似。
  • 一样不能有静态的,但是可以访问方法的局部变量和参数,但是这两个都是默认为final(省略)。
  • 不能有访问修饰符(和局部变量一致)。

匿名内部类

  • 用来创建抽象类和接口的实例。
  • new 接口/抽象类(){方法实现};//抽象有构造参数,可以传参
  • 匿名内部类可以作为方法的参数。
  • 匿名内部类也有静态非静态局部等区别,和他们类似的语法规定。

内部类相关

原文:https://www.cnblogs.com/ofaction/p/13134188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!