内部类和匿名内部类

2017-08-07

内部类

定义:把类定义在其他类的内部,这个类就被称为内部类

内部类的访问特点:内部类可以直接访问外部类的成员,包括私有的

         外部类要访问内部类的成员,必须要创建对象

内部类可以按位置分为成员内部类和局部内部类

1.成员内部类:写在类里面,方法外面,任何一种修饰符都可以修饰成员内部类,常用 private 和static ,private保护数据安全性,static使数据访问方便

测试成员内部类:方法1 外部类名.内部类名 对象名 = new 外部类名().new 内部类名();

        方法2 在外部类的方法中创建内部类的对象,测试外部类的方法对内部类进行测试

注意事项:被静态修饰的成员内部类只能访问外部类的静态成员

     静态成员内部类访问非静态方法的方式:外部类名.内部类名 对象名 = new 外部类名.内部类名()

            访问静态方法的方式:上面所述的方法,或 外部类名.内部类名.方法名()

2.局部内部类:写在类的方法中

注意事项:测试局部内部类时,在内部类所在的方法内创建内部类的对象,再通过测试外部类方法去测试内部类

     局部内部类去访问它所在的方法的局部变量时,这个变量必须被final修饰,这和他们在内存中存在的时间有关

匿名内部类

内部类的简化写法

在多态中应用,如果没有一个合适的类去继承并实现抽象类或接口中的抽象方法,这时就可以创建一个匿名内部类,去实现接口或抽象类中的抽象方法,并作为参数传递。

原文地址:https://www.cnblogs.com/buyanyu/p/7300603.html