内部类

一.内部类的简介

在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。

1.成员内部类:

成员内部类是最普通的内部类,它的定义为位于另一个类的内部

成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。

注意:当成员内部类拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,即默认情况下访问的是成员内部类的成员。如果要访问外部类的同名成员,需要以下面的形式进行访问:
外部类.this.成员变量
外部类.this.成员方法
虽然成员内部类可以无条件地访问外部类的成员,而外部类想访问成员内部类的成员却不是这么随心所欲了。在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问
成员内部类是依附外部类而存在的,也就是说,如果要创建成员内部类的对象,前提是必须存在一个外部类的对象,成员内部类不常用

2.局部内部类

局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。
注意:注意,局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的。

3.匿名内部类:

匿名内部类也就是没有名字的内部类
正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
而且子类只用一次就不用了,创建类太麻烦,然后使用匿名类,就是在创建原有抽象类的基础上,在其构造函数方法体内部新建了一个方法,直接调用。看似是创建了原有的对象,但是实际上确实一个隐藏的实现类。

4.静态内部类

用static修饰的内部类。静态内部类不需要依赖外部类,和类的静态成员属性有点类似。

二.使用内部类的好处:

1.内部类完善了Java不能多继承的特性。(内部类能独立的实现或继承一个接口或类,所以外部类的继承或实现对内部类没有影响)
2.方便编写线程代码(匿名内部类)
3.可以隐藏类(作为外部类的成员)
注意:对于成员内部类,必须先产生外部类的实例化对象,才能产生内部类的实例化对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值