一、嵌套类是指被定义在另外一个类内部的类函数
- 嵌套类存在应该仅仅是为他的外围类提供服务
- 否则,他就不该该被嵌套
二、嵌套分四种状况对象
- 静态成员类
- 非静态成员类
- 匿名类
- 局部类
- 除了第一种,都是内部类
三、静态成员类当成普通类继承
- 碰声明在内部的普通类
- 能够访问外围类全部成员(包括私有成员)
- 静态成员类是外围类的一个静态成员,遵照一样的访问规则(和其余静态成员同样)
- 经常使用来做为共有的辅助类
- 能够在外围类实例以外独立存在
四、非静态成员类作用域
- 非静态成员类的每一个实例,都隐含着与外围类的一个外围实例相关联
- 建立时确认关联关系、一旦关联不能修改
- 能够调用外围实例的方法
- 没有外围实例的状况下,建立非静态实例是不可能的
- 经常使用来定义一个Adapter
五、若是声明成员类不要求访问外围实例,那就声明为静态成员类变量
- 若是声明为非静态,每一个实例都保留指向外围实例的引用,影响外围实例垃圾回收
六、私有静态成员类经常使用来表明外围类对象的组件垃圾回收
七、匿名类引用
- 没有名字,不是外围类的一个成员
- 使用的同时被声明和被实例化
- 能够出如今任何容许出现表达式的地方
- 客户端没法调用它的任何成员,除非是超类继承的
- 尽量简短,不然影响程序可读性
- 常见用法:动态建立函数对象
- 另外一种常见用法:建立过程对象(好比Thread或TimerTask)
- 还有:静态工厂方法内部
八、局部类是用的最少的程序
- 任何能够声明局部变量的地方均可以声明局部类
- 局部类遵照一样的做用域规则
- 匿名类在不止一个地方用,作成局部类