在其他构造中定义的类
在另一个类中定义
C++
嵌套类 [ref] (需要引用封闭类)
class Outer {
class Inner {
public:
Inner(Outer* o) :outer(o) {}
private:
Outer* outer;
};
};
Java
[非静态]嵌套类(又名内部类或成员类)
class OuterClass {
...
class InnerClass {
...
}
}
在另一类中静态定义
C++
静态嵌套类
class Outer {
class Inner {
...
};
};
Java
静态嵌套类(又名静态成员类) [参考]
class OuterClass {
...
static class StaticNestedClass {
...
}
}
在方法中定义
(例如事件处理)
C++
本地类 [参考]
void fun() {
class Test {
/* members of Test class */
};
}
Java
本地类 [参考]
class Test {
void f() {
new Thread(new Runnable() {
public void run() {
doSomethingBackgroundish();
}
}).start();
}
}