内部类与匿名内部类

本文详细介绍了Java内部类的概念、访问方式及应用场景,探讨了非静态内部类如何访问外部类成员,以及静态内部类访问外部类静态成员的方式,并介绍了简化内部类书写的匿名内部类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内部类:内置类,嵌套类。

将类定义在另一个类中,该类就是内部类。类中定义的类中就是内部类。其实类的定义位置发生了一点小变化。

访问方式:

        内部可以直接访问外部类中的成员。

外部类想要访问内部类,需要建立内部类对象。

什么时候定义内部类呢?

   当分析一个事物时,该事物的内部还有具体的事物,这个具体的事物在使用该事物中的其他成员。这时就将这个具体的事物用内部类来描述。

 

内部类通常都不会直接对外提供,都会封装到外部类中,外部类一般会通过对外提供方法的形式对其进行访问。

 

非静态的内部类之所以可以直接访问外部类中的成员,

那是因为内部类中都持有一个外部类对象引用:外部类名.this

 

 

静态的内部类之所以可以直接访问外部类中的静态成员,其实持有的是外部类名。

 

记住只有内部类定义在成员位置上,才可以有这些成员修饰符。

 

匿名内部类

匿名内部类:就没有名字的内部类。

好处:简化了内部类的书写。

 

前提:内部类必须要继承或者实现一个外部类或外部接口 

 

 

匿名内部类的格式:

new 父类名或者接口(){里面定义该父类或者接口的子类成员。}

 

匿名内部类其实就是一个子类匿名对象。这是一个带有内容的对象,这个对象有点胖。

 

什么时候使用匿名内部类呢?

 

当函数的参数是一个接口类型的引用,而且该接口中的方法不超过3个。

这时可以给这个函数传递一个匿名内部类实际参数进入。简化书写 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值