1 内部类——在一个类中定义另一个类,当建立一个inner class时,其对象拥有与外部对象之间的一种关系,通过this.referance形成,使得内部类可以访问外部类中所有的成员。
2 在内部类的方法中访问局部变量直接引用,访问Inner类的成员变量,用this.x,访问外部类M的成员变量,用M.this.x。
3 在方法中定义的内部类,如果要访问方法中定义的本地变量或方法的参数,则变量必须被声明final。内部类可以声明为private或protected,还可以被声明为abstract或final。
4 内部类可以声明为static的,但此时就不能使用外部类的非static的成员变量和非static的成员方法。
如
class Outer { private int index = 100; 定义外部类数据成员 class Inner {...} Inner getInner() { return new Inner();\产生一个Inner类对象 } public static void main(String []args) { Outer outer = new Outer(); Inner inner = outer.getInner(); 产生一个outer对象后,利用该对象调用getInner()函数,产生一个 Inner类对象 inner.print(); } } class Test { public static void main(String []args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner();\和外部类对象outer相关联,才能创建内部对象 } }
5 非static的内部类中的成员不能声明static成员,只有在顶层类或static的内部类中才可声明static成员。