java当中内部类的使用规则
1、一个内部类的对象能够访问创建它的外部类对象的所有属性及方法(包括私有部分)。
//可以闭上眼镜,把这个内部类等同于一个类的一个方法,当然就可以访问这个外部类的
//所有方法和属性,私有方法和属性是属于外部类的,当然也就等同于内部类的.
//Inner Class 可以访问容器类的任何成员,不管是public、private或protected的成员全是透明的。反之则不然,容器//类只能访问Inner Class的public成员
2、对于同一个包中的其它类来说,内部类能够隐藏起来。(将内部类用private修饰即可)
3、内部类可定义在方法中,称为局部内部类,但它只能使用方法中的final常量。
// 定义在一个方法内的类,又被成为局部内部类,这个类只能使用在方法中的final常量,注意,这个常量是在一个方法中的,那么能否使用一个类中的常量呢?
当然是可以的,因为类中的常量在在一个方法中是可见的.
4、内部类可以被定义为抽象类
// abstract 类同样可以在内部类中
5、非静态内部类不能声明本类的static成员
//只有一个静态的内部类,才可以声明一个static成员,
匿名内部类
在某些情况下,我们只需要内部类的一个对象,那么我们就没有必要给内部类命名,没有名字的内部类我们称为匿名内部类
以下情况使用匿名内部类可以达到很好的效果:
·只用到类的一个实例。
·类在定义后马上用到。
·类非常小(SUN 推荐是在 4 行代码以下)
·给类命名并不会导致你的代码更容易被理解。
在使用匿名内部类时,要记住以下 4 个原则:
·匿名内部类不能有构造方法。
·匿名内部类不能定义任何静态成员、方法和类。
·匿名内部类不能是 public,protected,private,static。
·只能创建匿名内部类的一个实例。