内部类Def:内部类是指定义在另一个类中的类。
使用内部类的原因有以下三点:
①内部类可以访问其外部类的任何数据,包括私有数据。
②内部类可以对同一个包中的其他类隐藏起来。
③当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。
注意事项:
①内部类对象通过this指针引用其外部类的对象。
②只有内部类可以是私有的,常规类只能试包可见性或者公有可见性。
③在其他类中创建内部类的实例:外部类名字.new + 内部类名字
④可以在一个方法中定义内部类,称为局部内部类。局部内部类不能用private或者public进行声明,它的作用于被限制在定义这个内部类的方法中。
匿名内部类:
①假如只需要创建这个类的一个对象就不必命名了,这样的类称为匿名内部类。
②匿名内部类只能实现一个接口或继承一个类。
静态内部类(嵌套类):
①有时候,使用内部类只是为了把一个类隐藏在另一个类的内部,并不需要内部类应用外部类的对象,为此可以将内部类声明为static,以便取消产生的引用。
②不能从静态内部类中访问非静态外部类的对象。
③普通内部类不能含有static数据和字段,也不能有静态内部类。但静态内部类能包含所有这些东西。