Java-内部类

Java-内部类

1 内部类

1.1 概念

image-20210617183839827

内部类最大的优点:可以使用外部私有化数据

1.2 分类

静态内部类:类体中用static修饰的类

普通内部类(成员内部类):类体中没有static修饰的类

局部内部类:方法声明的内部类

匿名内部类:是指在调用方法的时候需要传入一个对象(一般是接口的实现类对象),这个时候就可以不传递对象,而传递一个匿名内部类

​ 普通类也可以,一般是接口

​ 匿名内部类就等于是子类

1.2.1 成员内部类

image-20210617185108025

image-20210617185328314

1.2.2 静态内部类

image-20210617185808694

image-20210617190011514

1.2.3 局部内部类

局部内部类访问外部方法的局部变量的时候,该局部变量必须使用final修饰,但是1.8之后final可以省略,但值依然不能修改

不管是成员方法还是静态方法,都不能使用static修饰局部内部类

不管是成员方法还是静态方法,局部内部类中都不可以声明静态属性

如果是成员方法的局部内部类,则可以直接访问外部类中的所有属性

如果是静态方法的局部内部类,则不能直接访问成员属性,需要有对象

类名:

​ 如果多个方法的内部类类名不一致,就是外部类$1内部类

​ 如果多个方法的内部类类名一致,就是外部类$1内部类,外部类$2内部类…

1.2.4 匿名内部类

方法名(new 接口名(){实现类类体});

传入匿名内部类的时候会自动创建一个对象传入,因为没有名字,所以不能复用,我们也不能手动创建对象

类名为 外部类类名$1,以此类推

匿名内部类中不能有静态声明,但可以有常量(public static final)

不能直接访问外部类的成员属性,需要有对象

image-20210617193106307

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值