JAVA 技术专题综述 之 内部类篇
有些类的定义中包含另一个类的定义。这种处于内部的类称为内部类(inner class)。
例如:
public class OuterClass
{
public class InnerClass
{
//---This is a inner class.
}
}
InnerClass 类嵌套在 OuterClass 中,并且被声明为 public,因此被 OuterClass 类之
外的对象访问。InnerClass 类没有被声明为 OuterClass 类的一个静态成员,因此除非生成了
一个 OuterClass 对象,否则无法生成任何 InnerClass 对象。但是,当你声明一个包含嵌套类
的类对象时,并不一定会生成嵌套类的对象,这主要由包含嵌套类的类的构造方法决定。
示例 1:
class OuterClass
{
class InnerClass
{}
}
public class Test
{
public static void main(String[] args)
{
OuterClass out = new OuterClass();
OuterClass.InnerClass in = out.new InnerClass();
}
}
我们使用 OuterClass out = new OuterClass();语句生成了一个 OuterClass 类对象。
然后又使用 OuterClass.InnerClass in = out.new InnerClass();语句借助外部类的实
例生成了一个内部类的对象。main()方法中的两条语句也可以用下面的这一条语句替换:
OuterClass.InnerClass in = new OuterClass().new InnerClass();
总之:在一个类(Test)中,创建另一个类(OuterClass)中的非静态内部类(InnerClass)
必须要借助这个外部类(OuterClass)的一个实例。而且这个内部类对象的声明也必须用
OuterClass.InnerClass 的形式。
示例 2:
public class Test
{
class InnerClass
{}
1