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