在所有类中有一种类是“依附”外部类而存在的内部类,即嵌套类(inner class)。内部类是定义类的一种方式。它可以被定义在另外一个类和接口的内部,或者作为其成员的一部分而存在。内部类可以是静态,也可以用protected和private修饰(外部类只可以用public和默认包访问权限)。类似的,一个接口可以被定义在另一个类和接口的内部,或者作为其成员的一部分而存在,称为内部接口或者嵌套接口。
嵌套类或者嵌套接口所在的类就称为外部类(outer class)或者顶级类(top—level class)。嵌套类和嵌套接口合称为嵌套类型。而嵌套类型则是外部类型的一部分。
对于内部类来说可以分为两种:成员内部类和局部内部类。
(1)成员内部类
成员内部类就如同它名字一样:作为外部类的一个成员存在,在与外部类的属性和方法并列。不可使用static做限定词。
注意:成员内部类中不能定义静态变量,但可以访问外部类的所有成员,而且内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。(www.xing528.com)
例如:
(2)局部内部类
局部内部类在方法中定义的内部类,与局部变量类似,在局部内部类前不加修饰符public或private,其范围为定义它的代码块。
注意:局部内部类中不可定义静态变量,可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的。在类外不可直接生成局部内部类(保证局部内部类对外是不可见的)。要想使用局部内部类时需要生成对象,在方法中才能调用其局部内部类。通过内部类和接口达到一个强制的弱耦合,用局部内部类来实现接口,并在方法中返回接口类型,使局部内部类不可见,屏蔽实现类的可见性。
例如
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。