在其他構造中定義的類
在另一個類中定義
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();
}
}