1、一个内部类的对象能够访问创建它的外部类对象的所有属性及方法(包括私有部分)。
可以闭上眼镜,把这个内部类等同于一个类的一个方法,当然就可以访问这个外部类的 所有方法和属性,私有方法和属性是属于外部类的,当然也就等同于内部类的。
2、对于同一个包中的其它类来说,内部类能够隐藏起来。(将内部类用private修饰即可) 只有在内部类中,才能定义一个为private类型的class,因为这时编译器已经把这个类看作这个类的成员了,但是在一般使用时,就是所谓的“顶级类时”,不能使用private,只能是public 或者是friendly。 如果要是想保证一个类不产生任何的对象,请在构造函数中,把构造函数声明成private。
3、内部类可定义在方法中,称为局部内部类,但它只能使用方法中的final常量。 定义在一个方法内的类,又被成为局部内部类,这个类只能使用在方法中的final常量,注意,这个常量是在一个方法中的,那么能否使用一个类中的常量呢? 当然是可以的,因为类中的常量在一个方法中是可见的。
abstract 类同样可以在内部类中 5、非静态内部类不能声明本类的static成员 只有一个静态的内部类,才可以声明一个static成员,
如果在匿名内部类中用到了外部对象,就必须保证这个外部对象是final的 |
|