1. 程式人生 > >Nested Class,Inner Class,Member Class,Local Class, and Anonymous class區別

Nested Class,Inner Class,Member Class,Local Class, and Anonymous class區別

其實所有類都可能是top level類或是nested 類;
所有的nested 類都可能是static類或是Inner類;
所有的Inner類都可能是local類,Anonymous類,non-static 的Member類;
top level 類不能是nested類.
Nested Class是C++的說法,通常JAVA說的是Inner Class.
可以是這樣的層次:nested ->Inner->Anonymous
class TopLevelClass
{
  //這是Inner類,也是nested 類
  class NestedNonStaticClass{
  }
  //這是個static 類,也是nested 類
  static class NestedStaticClass{
  }

  void someMethod(){
    //這是個local類,不能是static類
    class LocalClass{
    }
    //方法中引用
    SuperOfAnonymousClass soac = new SuperOfAnonymousClass(){
    }
  }
}
//這是個Anonymous類
class SuperOfAnonymousClass{
}