内部类主要定义在类的内部,定义内部类的作用,主要是因为不希望该类作为大家共同使用访问的类,而是将其定义成内部类,只供本类使用,当中本类的一个成员使用。内部类主要分为成员内部类、局部内部类、静态内部类和匿名内部类。
成员内部类
- 成员内部类就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。注意成员内部类不能含有static的变量和方法。因为成员内部类需要先创建了外边类,才能创建它自己的内部类。定义如下
- public class 外部类{
- public class 内部类{}
- }
局部内部类
局部内部类是指内部类定义在方法和作用于内,也可以说,在方法中定义的内部类称为局部内部类。与局部变量类似,局部内部类不能有访问说明符,因为它不是外围类的一部分,但是它可以访问当前代码块内的常量和次外围类所以的成员。
局部内部类的实例化只能在方法内部,并且局部内部类方法中要想使用局部变量,该变量必须声明为final类型的。
静态内部类
就是声明为static的内部类。可以通过“外部类.内部类”直接引用。实例化:外部类.内部类 对象=new 外部类.内部类 ();
匿名内部类
匿名内部类是不能有名称的类,所以没有办法引用它们。必须在创建时,作为new语句的一部分来声明它们,这就要采用另外一种形式的new语句,如: new <类或接口><类的主体>
对象包装器类java.lang