Java的内部类(Inner Class)和嵌套类(Nested Class)的区别

来源:互联网 发布:seo招聘北京 编辑:程序博客网 时间:2024/04/30 16:13

内部类是类中类(内部类不为同一包的其他类可见,具有很好的封装性),分为静态内部类,成员内部类,局部内部类以及匿名内部类;局部内部类写在方法里面;用到最多的就是匿名内部类,例子如下:

首先定义一个接口: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. 在任何非静态内部类中,都不能有静态数据、静态方法或者又一个静态内部类(也就是不止一层),然后静态内部类可以拥有这一切。

 

 

0 0