千家信息网

什么是内部类

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"什么是内部类",在日常操作中,相信很多人在什么是内部类问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"什么是内部类"的疑惑有所帮助!接下来,请跟着小编一
千家信息网最后更新 2026年11月01日什么是内部类

这篇文章主要介绍"什么是内部类",在日常操作中,相信很多人在什么是内部类问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"什么是内部类"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本文内容

什么是内部类?

我们将一个类A定义在另外一个类B中,那么这个类A就叫内部类。

为什么需要内部类呢?

有三点原因:

内部类方法可以访问该类定义的所在的作用域中的数据,包括私有的数据。

内部类可以对同一个包中的其他类隐藏起来。

当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较方便。

内部类有什么特性?

内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。

在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。

创建内部类对象的时刻并不依赖于外围类对象的创建。

内部类并没有令人迷惑的"is-a"关系,他就是一个独立的实体。

内部类提供了更好的封装,除了该外围类,其他类都不能访问。

来自《Think in java》

内部类有哪些种类?

成员内部类:和成员变量一个级别

局部内部类:在方法里的内部类

匿名内部类:基本上属于接口的实现类,一次性使用的场景。

静态内部类:static修饰的成员内部类

如何使用内部类?

创建静态内部类对象的一般形式为:

外部类类名.内部类类名 xxx = new 外部类类名.内部类类名()

创建成员内部类对象的一般形式为:

外部类类名.内部类类名 xxx = 外部类对象名.new 内部类类名()

上面就是做一个简单的回答,如果面试还可能会继续问,那就得继续往下看。

这是一个黄金分割点,以上这部分是初级面试题。

面试回答:

常见高级面试题

为什么成员内部类可以无条件访问外部类的成员?

解题思路:先写个案例,证明是不是正确的,然后再深层次的去了解成员内部类和外部内的关系。

public class OuterClass {         class InnerClass{         }     }

代码中InnerClass就是成员内部类。使用javac对OuterClass进行编译,也可以在IDEA或者eclipse中进行编译,编译完后会发现居然有两个.class文件。

  • 外部类:OuterClass.class

  • 成员内部类:OuterClass$InnerClass.class

使用javap 命令来查看这两个class文件:

OuterClass.class内容为如下:

就是个简单的类,没什么不一样的地方。我们主要还是看看内部类的这个.class文件内容是否有些特别。

OuterClass$InnerClass.class内容如下:

从上面的内容中我们可以看到四点:

1,定义了一个常量,指向外部类对象的地址。

2,内部类默认有个构造方法,有参数的,参数为外部类。

3,给成员变量1(this$0)赋值为外部类对象地址。

4,有两个成员变量,一个是自己,另外一个是指向外部类对象地址的变量。

所以这里就证明了,为什么内部类能访问外部类的成员(静态内部类是不依赖于外部类的,也就说可以在不创建外部类对象的情况下创建内部类的对象 )。

另外也可以得出一个结论就是:成员内部类依赖于外部类,必须是外部类想创建好对象,内部类才可以创建对象。

到此,关于"什么是内部类"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

对象 成员 类名 内容 就是 变量 方法 学习 两个 地址 文件 静态 编译 代码 信息 参数 多个 实例 形式 指向 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网通讯科技 鸠鸠互联网科技 港股互联网科技股 互联网科技的 狮子座互联网科技有限公司 互联网科技缩写 互联网科技美容 新华互联网科技2019 互联网科技博主是什么意思 北京大学互联网科技怎么样 北京华百购互联网科技有限公司 重庆互联网医院沙龙医盟信息科技 新兴科技互联网创新大赛颁奖典礼 消费医药和互联网科技 工业互联网等科技实现智能化赋能 上海钢联属于互联网科技股吗 南京一网一红互联网科技有限公司 互联网领先科技活动 杭州融税互联网科技有限公司 山东蛋芒互联网科技有限公司 互联网科技战争 互联网科技公司发展 美国互联网科技 奇士达互联网科技 科技赋能互联网健康 福建科技产业互联网发展 长沙茂晟互联网科技有限公司 广东工业互联网大赛深圳学泰科技 广州百诚互联网科技有限公司官网 恒生科技指数 中概互联网
0