在其他构造中定义的类

在另一个类中定义

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();
    }
}