sands澳门金沙娱乐场
Java的内部类
发布日期: 2018-05-04

顾名思义,内部类就是在内部的类,具体来说是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,www.3878.com,并且依附于外部类而存在的。内部类主要有以下几类:成员内部类、局部内部类、匿名内部类。为什么需要内部类

其实内部类最大的一个优点就是能独立的继承自一个接口的实现,所以无论外部类是否已经继承了某个接口的实现,对内部类都没有影响。另外内部类可以访问该类所在的作用域的数据,包括私有数据。内部类可以实现多重继承。还可以在你想要定义一个回调函数但是不想太多代码时,使用匿名内部类就可以。下面我们具体看一下内部类的分类:01 成员内部类

成员内部类是指在一个类中直接定义的内部类,它的特点主要有:没有使用static修饰的内部类。在成员内部类中不允许出现静态变量和静态方法的声明,static只能用在静态常量的声明上。成员内部类中可以访问外部类中所有的成员,包括私有成员

例如:

02 局部内部类

在方法中的内部类称为局部内部类,它的特点是:局部内部类不能有访问修饰符它可以访问当前代码块中的常量,和此外部类的所有成员方法内部类只能在定义该内部类的方法内实例化,不能再此方法外对其实例化方法内部类对象不能使用该内部类所在方法的非final局部变量

例如:

03 匿名内部类

匿名内部类其实就是没有名字的内部类,通常在这些情况下会使用匿名内部类:只用到类的一个实例,类在定义后马上用到,类非常小。

其实例的方式一共有两种:

格式一:

new 类A(){ 方法体 }

这时候产生的是类A的子类对象。

格式二:

new 接口A(){ 方法体}

这时候产生的是接口A的实现类对象。

匿名内部类在使用时不能有构造方法,但是如果这个匿名内部类继承了一个只含有带参数构造方法的父类,在创建它的对象的时候,在括号里必须带上这些参数。匿名内部类不可以定义任何静态成员和方法。

例如:

在面试时,内部类也是面试官问的频率很高的一个模块,所以整理一下,希望可以帮助到大家,如果大家还有什么更好的想法或者需要补充的,可以留言告诉我们,共同探讨,共同进步~



友情链接:

Copyright 2017-2018 sands澳门金沙娱乐场 http://www.eduidu.com 版权所有,未经协议授权禁止转载。