在java中你可以在一个类中定义一个类,这叫做嵌套类.分为两种,内部类(没有static 修饰)和静态嵌套类(含有static修饰).
[b]内部类[/b]
因为一个内部类的实例中总是含有一个外部类实例的引用所以同部类可以任意的使用外部类的的成员变量与方法.又因为内部类总是与一个实例想联系所以内部类不能含有任何静态的成员.如下就是定义了一个内部类的的格式:
实例一个内部类的语法:
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
下图更直观的说明
[align=center][img]/upload/attachment/103516/1f24fff3-6d0c-35ed-a57a-a1b589634c44.gif[/img][/align]
[b]静态嵌套类[/b]
因为是静态的所以就不需要与外部类的实例发生联系.显然没有了对外部对象的引用,静态类嵌套类只能使用其静态成员
实例化一个静态嵌套类语法:
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
[b]内部类[/b]
因为一个内部类的实例中总是含有一个外部类实例的引用所以同部类可以任意的使用外部类的的成员变量与方法.又因为内部类总是与一个实例想联系所以内部类不能含有任何静态的成员.如下就是定义了一个内部类的的格式:
class OuterClass {
/**
*外部类的成员
/*
class InnerClass {
/**
*内部类的成员
/*
}
}
实例一个内部类的语法:
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
下图更直观的说明
[align=center][img]/upload/attachment/103516/1f24fff3-6d0c-35ed-a57a-a1b589634c44.gif[/img][/align]
[b]静态嵌套类[/b]
因为是静态的所以就不需要与外部类的实例发生联系.显然没有了对外部对象的引用,静态类嵌套类只能使用其静态成员
class OuterClass {
/**
*外部类的成员
/*
static class InnerClass {
/**
*内部类的成员
/*
}
}
实例化一个静态嵌套类语法:
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();