嵌套类:处于内部的类称为嵌套类(nested class)
顶层类:包含嵌套类,但其本身并不是嵌套类的类
内部类与其他类成员一样,会成为外部类的一个成员;也可以有访问属性,并且外部类对它的可访问性也同样取决于这个属性值。
public class Outside {
public class Inside{
}
}
这里的嵌套类Inside只在Outside类型对象的情况下有意义,除非Inside声明为静态成员。
除非生成Outside类型对象,否则就不能生任何Inside类型对象。
当声明一个包含嵌套类的类对象时,却不一定会生成嵌套类的对象,除非由外部类的构造函数生成它们。
Outside outer = new Outside();
上面没有生成嵌套类Inside的对象。
Outside outer = new Outside();
Outside.Inside inner = outer.new Inside();
只在Outside对象生成后,才生成一个嵌套类对象,与outer对象关联。因为它是在outer对象的环境中生成的。
在Outside成员的非静态方法中,可直接使用类名Inside,因为它会由编译器自动加上this变量。
public class Outside {
public class Inside{
}
public void NewInside(){
Inside inner = new Inside();
}
}