嵌套类的设计与使用是Java 码农在OOD、OOP中的一件顺手工具, 这一点是毋庸置疑的,但怎样正确使用嵌套类在实际的编程中呢?下文会针对这一话题展开叙述。
什么是嵌套类?
在Java语言的世界里允许在一个类的内部定义类,如下代码所示:
class OuterClass {
...
class NestedClass {
...
}
}
术语: 嵌套类分为静态和非静态两类; 声明为static的内部类我们称为“静态嵌套类”,而未声明为static的内部类我们称之为“内部类”
class OuterClass {
...
static class estedClass {
...
}
class InnerClass {
...
}
}
作为包装类的一个成员, 非静态嵌套类可以有权访问其包装类的成员变量(甚至包括私有变量),然而静态的嵌套类却不可以访问其包装类的任何成员变量。
内部类可以声明为public , protected, package private, private 访问权限。
为什么要使用内部类(什么情况必须使用内部类)?
对只在一处使用的类的逻辑分组
如果一个类A只对一个类B有用,并且逻辑上这个类A能够内嵌到这个类B中,是这两个类放在一起,将这样的“帮助类”B设计为内部类将使包结构更加顺畅,优美。
提升封装性
当类B需要访问类A中必须声明为private的成员变量的时候。如果将类B声明为内部类,这样既可以满足需求而且可以将B声明为private或其他权限将类B隐藏起来。
可读性好,高可维护的代码
将相近的类声明为内部类,使得代码更加符合逻辑,可读性更好,可维护性更好。
静态嵌套类
想要通过静态嵌套类直接访问包装类的成员变量? No Way, 那是内部类(非静态嵌套类)能做的。静态嵌套类只能与其他静态类一样通过拿到引用的方
Java内部类(innerclass) 来自淘豆网m.daumloan.com转载请标明出处.