优先考虑静态成员类(22)

一、嵌套类是指被定义在另外一个类内部的类函数

  • 嵌套类存在应该仅仅是为他的外围类提供服务
  • 否则,他就不该该被嵌套

二、嵌套分四种状况对象

  • 静态成员类
  • 非静态成员类
  • 匿名类
  • 局部类
  • 除了第一种,都是内部类

三、静态成员类当成普通类继承

  • 碰声明在内部的普通类
  • 能够访问外围类全部成员(包括私有成员)
  • 静态成员类是外围类的一个静态成员,遵照一样的访问规则(和其余静态成员同样)
  • 经常使用来做为共有的辅助类
  • 能够在外围类实例以外独立存在

四、非静态成员类作用域

  • 非静态成员类的每一个实例,都隐含着与外围类的一个外围实例相关联
  • 建立时确认关联关系、一旦关联不能修改
  • 能够调用外围实例的方法
  • 没有外围实例的状况下,建立非静态实例是不可能的
  • 经常使用来定义一个Adapter 

五、若是声明成员类不要求访问外围实例,那就声明为静态成员类变量

  • 若是声明为非静态,每一个实例都保留指向外围实例的引用,影响外围实例垃圾回收

六、私有静态成员类经常使用来表明外围类对象的组件垃圾回收

七、匿名类引用

  • 没有名字,不是外围类的一个成员
  • 使用的同时被声明和被实例化
  • 能够出如今任何容许出现表达式的地方
  • 客户端没法调用它的任何成员,除非是超类继承的
  • 尽量简短,不然影响程序可读性
  • 常见用法:动态建立函数对象
  • 另外一种常见用法:建立过程对象(好比Thread或TimerTask)
  • 还有:静态工厂方法内部

八、局部类是用的最少的程序

  • 任何能够声明局部变量的地方均可以声明局部类
  • 局部类遵照一样的做用域规则
  • 匿名类在不止一个地方用,作成局部类
相关文章
相关标签/搜索