Java的内部类(Inner Class)和嵌套类(Nested Class)的区别
2016-11-24 15:09
232 查看
转载地址 http://blog.csdn.net/holmes_conan/article/details/41179353
内部类是类中类(内部类不为同一包的其他类可见,具有很好的封装性),分为静态内部类,成员内部类,局部内部类以及匿名内部类;局部内部类写在方法里面;用到最多的就是匿名内部类,例子如下:
首先定义一个接口:Interface A{ public void method();}
然后 A a = new A(){public void method{ System.out.println("hehe!");}}
上面表达式等号右边就是一个匿名内部类,事实上它是一个没有名称的接口A的实现类。
1. 静态的内部类称为嵌套类,嵌套类不能直接引用外部类的non-static属性和方法,创建嵌套类对象时不依赖外部类对象;
2. 静态内部类没有了指向外部的引用,和C++的嵌套类很相像了,Java内部类和C++嵌套类最大的不用在于是否具有指向外部引用这点;
3. 在任何非静态内部类中,都不能有静态数据、静态方法或者又一个静态内部类(也就是不止一层),然后静态内部类可以拥有这一切。
内部类是类中类(内部类不为同一包的其他类可见,具有很好的封装性),分为静态内部类,成员内部类,局部内部类以及匿名内部类;局部内部类写在方法里面;用到最多的就是匿名内部类,例子如下:
首先定义一个接口:Interface A{ public void method();}
然后 A a = new A(){public void method{ System.out.println("hehe!");}}
上面表达式等号右边就是一个匿名内部类,事实上它是一个没有名称的接口A的实现类。
1. 静态的内部类称为嵌套类,嵌套类不能直接引用外部类的non-static属性和方法,创建嵌套类对象时不依赖外部类对象;
2. 静态内部类没有了指向外部的引用,和C++的嵌套类很相像了,Java内部类和C++嵌套类最大的不用在于是否具有指向外部引用这点;
3. 在任何非静态内部类中,都不能有静态数据、静态方法或者又一个静态内部类(也就是不止一层),然后静态内部类可以拥有这一切。
相关文章推荐
- 【java面试题】Static Nested Class(嵌套类) 和 Inner Class(内部类)的不同 、final、static
- 【Java面试题】11 什么是内部类?Static Nested Class 和 Inner Class的不同。
- java面试题之内部类不用愁,看完就理解-什么是内部类?Static Nested Class 和 Inner Class的不同。
- Java - 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
- Static Nested Class(嵌套类) 和 Inner Class(内部类)的不同
- Static Nested Class(嵌套类) 和 Inner Class(内部类)的不同
- 【Java面试题】11 什么是内部类?Static Nested Class 和 Inner Class的不同。
- Java 嵌套类(Nested Class):静态嵌套类,内部类,局部类,匿名类
- Java嵌套类(nested class)----静态成员类、非静态成员类、匿名类和局部类
- 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同
- Static Nested Class 和 Inner Class区别
- Java实例说明 嵌套类包括内部类(即非静态嵌套类)和静态嵌套类 两者的区别
- Java中Static Nested Class 和 Inner Class的不同
- 读书笔记:inner class和nested class的区别
- 什么是内部类?Static Nested Class 和 Inner Class的不同
- static nested class和inner class的区别
- Static Nested Class 和 Inner Class的不同。Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同
- 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
- 什么是内部类?Static Nested Class 和 Inner Class的不同。