1、内部类可以对同一个包中其他类隐藏(用private修饰)。
2、内部类方法可以访问定义这个类作用域中的数据、包括私有数据,但外围类不能访问内部类的私有数据。
3、内部类对外围类有一个外围引用以及外围类生成一个static方法,访问私有数据。
4、局部内部类既可以访问外围字段,也可以访问局部变量,他对外部世界完全隐藏,与局部变量有一样的性质。
5、匿名内部类是局部内部类的更进一步,它的基本格式如下:
new Interface(){
methods anddata
}
new SuperType(construction parameters){
inner class and data
}
匿名内部类没有名字,所以它就没有构造器。
6、静态内部类没有外围对象的引用,仅仅是为了两个类之间有一个类属关系,静态内部类可以在外部new对象,非静态内部类不可以。
7、非静态内部类的创建,必须有指向创建它的外围对象的引用,所以在main中创建它明显错误,需在他的外围对象中创建它,public与private指外部能否发现他们的权限,private可以让本包的类不能发现他。