您的位置:首页 > 编程语言 > Java开发

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. 在任何非静态内部类中,都不能有静态数据、静态方法或者又一个静态内部类(也就是不止一层),然后静态内部类可以拥有这一切。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐