...

解决方案 »

  1.   

    不同的称谓而已
    官方叫法是内部类 (Inner Class)
      

  2.   

    静态的内部类称嵌套类(Nested Class),如:class Outer {
      class Inner { } //Inner class
      static class Nested { }  //Nested class
    }
      

  3.   

    楼上的兄弟说的不错 补充一下:区别: 1.内部类的对象隐含一个外部类的对象引用,可以直接引用外部类的方法和属性
             另外内部类不能定义静态的属性和方法,创建内部类对象必须依赖于一个外部对象
                 
           2. 嵌套类不能直接引用外部类的non-satic属性和方法,创建嵌套类对象时不依赖外部类
              对象
      

  4.   

    jre5.0  以上似乎没有这个区别了区别: 1.内部类的对象隐含一个外部类的对象引用,可以直接引用外部类的方法和属性
             另外内部类不能定义静态的属性和方法,创建内部类对象必须依赖于一个外部对象
                 
           2. 嵌套类不能直接引用外部类的non-satic属性和方法,创建嵌套类对象时不依赖外部类
              对象
      

  5.   

    /////////////////////////////////////
    D:\JavaCode>javac Test2.java
    Test2.java:14: 内部类不能有静态声明
           public static  void ff(){
                               ^
    1 错误D:\JavaCode>javac Test2.java
    Test2.java:15: 无法从静态上下文中引用非静态 变量 this
              Outer.this.i = 8;
                   ^
    1 错误D:\JavaCode>javac Test2.java
    Test2.java:4: 需要包含 Outer.Inner1 的封闭实例
             Outer.Inner1 in = new Outer.Inner1();
                               ^
    1 错误////////////////////////////////////////////这是我刚刚在java 1.5
    下面测试的结果 
    楼上那位朋友的说法不成立!!