概念:
在一个类的内部定义的类,称为内部了;内部内所在的类,称为外部类。
作用:
内部类属于Java高级编程内容,使用非常灵活,掌握难道较大。合理使用,可编译出更好更高效的代码。
Java的内部类的分类:
静态内部类:
最简单的内部类形形式,定义在另一个类中,同时加上static关键字,它不能和外部类同名,它只可访问
外部类的静态成员变量和方法(包含私有的静态成员变量和方法)。
成员内部类:
同静态内部类相同,但定义不用static关键字,它可以访问外部类的所有成员变量和方法(包含静态和非静态)。
局部内部类:
定义在方法中,比方法的使用范围更小,是内部类中最少使用的。
它像局部或临时变量一样,不能被public protected private 和 static关键字修饰。它只能访问方法中定义的final类型
的局部变量。局部内部类定义在方法中,所以只能在方法中使用,即只能在方法中实例化局部内部类对象,并调用其方法。
匿名内部类:
它是一种特殊的内部类,是没有类名的局部内部类,不使用关键字class extends 等,且没有构造器。
匿名内部类的定义和实例化唯一对象而定义的类。当我们只需要实例化类的一个对象,而且不用类名时,使用匿名内部类
可以使代码更简洁,匿名内部类隐式的继承类一个父类或实现一个接口。
匿名内部类在编程中使用得较多,通常作为一个方法参数使用。
内部类的作用和好处:
1. 内部类可以很好的实现封装(数据隐藏),因为一般非内部类是不允许有protected private访问权限,但内部类可以有;
2. 内部类拥有外部类的所有成员的访问权限;
3. 可以实现多重继承;
4. 可以避免修改接口而实现同一个类中两种同名方法的调用。