第一次写这个东西,是自己在课本上总结出来的,不知道对不对,还请各位高手赐教啊?
内部类(Inner Class)是在一个类的内部嵌套定义的类,它可以是其他类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义,把包含内部类的类称为外部类。
根据内部类申明的位置,大致可以将其分为两种,一种是类成员式的,就是像属性、方法一样把一个类声明为另一个类的成员;第二种是局部式的,也就是把类声明在一个方法之中。成员式的内部类又分为静态内部类和非静态内部类,局部式的内部类又分为局部内部类和匿名内部类。
- 非静态内部类
不用static修饰,其地位像一个实例方法,可存取所有外部类的所有变量和方法。
在创建非静态内部类对象时,一定要创建对应的外部类对象,这是因为非静态内部类对象有着指向其外部类对象的引用
在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类。
2. 静态内部类
用static修饰的类,其地位像是一个类方法,可存取所在类的静态成员(包含静态成员变量,静态方法)。
3. 局部内部类
定义在一个方法或一个代码块之内的类,其地位就像局部变量,只在改代码块内部使用。
4. 匿名内部类
没有名称的局部内部类,它是一种特殊的内部类,在一个表达式内部包含一个完整的类定义。如果在一个方法中定义的匿名内部类,可以利用这个方法传进你想要的参数,不过记住,这些参数必须被声明为final。