《1》static inner classes (also called nested classes)
静态内部类(嵌套内部类)
内部类的最简单的形式
不能和外部包围类使用相同名称
编译成独立的类,外部类和内部类分开
只能访问外部类的静态成员或者方法,包括私有的
在外部类之外,创建静态内部类的实例语法:new outerclass.innerclass()
《2》member inner classes
成员内部类
<1>不使用static修饰符在包围类中定义
<2>象成员变量
<3>可以访问包围类的所有的成员
<4>在包围类中创建内部类的实例语法:new Innerclass();
<5>在包围类外创建内部类的语法 (new Outerclass()).new Innerclass();
内部类类型是: 外部类.内部类
<6>如果内部类和外部类有同名的变量和方法,直接访问是在操作内部类的
如果操作外部类的,方式是:Outerclass.this.member
《3》local inner classes
局部内部类(方法)
<1>在方法内定义,甚至就是方法内的代码块(内部类中最不常用的形式)
<2>象局部变量,但不能声明成public,protected,private,static
<3>只能访问final 的局部变量
《4》anonymous inner classes
匿名内部类
<1>就是局部内部类但没有名称
<2>没有Class关键字
<3>没有extends和implements关键字
<4>隐式继承父类或者实现接口