2017-08-07
内部类
定义:把类定义在其他类的内部,这个类就被称为内部类
内部类的访问特点:内部类可以直接访问外部类的成员,包括私有的
外部类要访问内部类的成员,必须要创建对象
内部类可以按位置分为成员内部类和局部内部类
1.成员内部类:写在类里面,方法外面,任何一种修饰符都可以修饰成员内部类,常用 private 和static ,private保护数据安全性,static使数据访问方便
测试成员内部类:方法1 外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
方法2 在外部类的方法中创建内部类的对象,测试外部类的方法对内部类进行测试
注意事项:被静态修饰的成员内部类只能访问外部类的静态成员
静态成员内部类访问非静态方法的方式:外部类名.内部类名 对象名 = new 外部类名.内部类名()
访问静态方法的方式:上面所述的方法,或 外部类名.内部类名.方法名()
2.局部内部类:写在类的方法中
注意事项:测试局部内部类时,在内部类所在的方法内创建内部类的对象,再通过测试外部类方法去测试内部类
局部内部类去访问它所在的方法的局部变量时,这个变量必须被final修饰,这和他们在内存中存在的时间有关
匿名内部类
内部类的简化写法
在多态中应用,如果没有一个合适的类去继承并实现抽象类或接口中的抽象方法,这时就可以创建一个匿名内部类,去实现接口或抽象类中的抽象方法,并作为参数传递。