java 内部静态类 使用场景_Java内部类简析

本文详细介绍了Java内部类的四种类型:成员内部类、静态嵌套类、方法内部类和匿名内部类。阐述了它们的特点、用途及应用场景,并对比了静态内部类与普通内部类的区别。

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

java内部类分为:成员内部类、静态嵌套类、方法内部类、匿名内部类 。其实从定义的的范围来看内部类可以简单的分为两种:成员内部类、方法内部类。

内部类的共性

(1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。

(2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的 。

(3)、内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 。

为什么需要内部类?

典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象。所以你可以认为内部类提供了某种进入其外围类的窗口。使用内部类最吸引人的原因是:每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。

静态内部类的使用场景

(1)、外部类需要使用内部类,而内部类无需使用外部类的资源

(2)、内部类可以独立外部类创建对象

静态内部类和普通内部类的区别

(1)、普通内部类不能声明static的方法和变量

普通内部类不能声明static的方法和变量,注意这里说的是变量,常量(也就是final static修饰的属性)

还是可以的,而静态内部类形似外部类,没有任何限制。

(2)、使用静态内部类,多个外部类的对象可以共享同一个内部类的对象。

使用普通内部类,每个外部类的对象都有自己的内部类对象,外部对象之间不能共享内部类的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值