Java内部类
- 静态内部类
(1)静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似;
(2)不能使用外部类的非static成员变量或者方法。
(3)用static修饰类。 - 成员内部类
- 成员内部类和成员方法类似。
(1)可以无条件的访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。
(2)成员内部类拥有与外部类同名的成员变量时,会发生隐藏现象,即默认情况下访问的是成员内部类中的成员。如果要访问外部类中的成员,需要以下形式访问:【外部类.this.成员变量 或 外部类.this.成员方法】。
(3)可以用private、protected和public修饰符修饰。
(4)在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问。
- 局部内部类
(1)局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。
(2)局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的。 - 匿名内部类
(1)使用匿名内部类时,必须继承一个类或实现一个接口。
(2)匿名内部类由于没有名字,因此不能定义构造函数。
(3)匿名内部类中不能含有静态成员变量和静态方法。
- 匿名内部类的创建格式为:
new 父类构造器(参数列表)|实现接口(){ //匿名内部类的类体实现 }