第四天
内部类分为成员内部类,局部内部类,匿名内部类和静态内部类。
成员内部类:
在类中创建一个类,嵌套类。简单区别就是有无public修饰,有的为外部类,无修饰的class即为内部类(前提是二者在同一个class中,且内部类可以有多个)。在外部类中将内部类实例化,会将内部类对象与外部类对象绑定,在创建外部类对象时,会先创建内部类对象,因此,外部类中被private修饰的变量,内部类也能调用。此外,内部类中与外部类中有同名变量时,默认情况下,内部类会调用自身的变量,但内部类想调用外部类的同名变量时,需要加this关键字,显式说明调用的是外部类中的变量。外部类想调用内部类中的变量则需要用内部类的对象来调用。(调用方法时格式:外部类对象名.内部类对象名.方法名())
局部内部类:
定义在类中方法中的类。且有作用域局限,例如在方法中,语句块的作用域内定义一个局部内部类,那么在这个语句块的作用域之外,方法作用域之内,仍旧无法调用这个局部内部类。没有修饰符。
匿名内部类:
不需要类名。且只能使用一次。
静态内部类:
使用static修饰的内部类。只能访问外部类的静态成员,且在外部类中调用内部类中方法时,不再需要外部类的对象名,可以直接实例化内部类,访问。如new 静态内部类名().方法名();