java四大内部类理解

6 篇文章 0 订阅

什么是内部类?

  • 理解:简而言之就是在类的内部创建一个类,内部类持有对外部类成员(属性,方法)的直接访问权

内部类的四大种类

一、成员内部类

1.访问:外部类.内部类 对象=new 外部类.内部类();
2.调用:对象.方法名();
3.理解:

1.要想有内部类(对象),必须先有外部类(对象)
2.内部类持有对外部类对象的引用
3.外部类的作用可以理解为包,它的作用相当于包

  • 注意:内存泄漏(解决方案:先将内部类置为空/静态的)

二、静态内部类

  • 理解:可以理解为全局

1.不需要有外部类对象(随着类的加载而加载,即使没有对象,它的属性仍在方法区中)
2.不能访问外部类的非静态成员
3.如果内部类中有静态方法,那么这个内部类一定是静态的

三、匿名内部类

1.语法:new 父类({重写父类已实现的方法});
2.注意:

1.没有抽象方法的抽象类(例:Type type=new Type(){};)
2.开发中最常见
3.没有构造方法

四、局部内部类

  1. 含义:写在方法中的类
  2. 注意:

1.一般来说,需要返回对象。之后想调用几次,什么时候调用都可以
2.局部内部类访问方法中的变量时,需要将变量定义成final的(变量名要大写),否则会导致内部类不能访问局部变量,因为不是final修饰的变量会随着方法的结束从桟内存中消失
3.很像闭包(javascripe) 内部类访问外部类对象Inner.this,Outer.this.class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值