新闻详情

新闻详情

首页 / 资讯中心 / 详情

Java内部类详解

发布时间:2026/10/1 21:14:56来源:尧图网络
Java内部类详解
一、什么是内部类内部类定义在一个类里面的类外面的类称为外部类。java// 外部类class Outer{// 内部类class Inner{}}1. 内部类编译完成后会生成独立 .class 文件命名格式 外部类名$内部类名.class2. 内部类可以直接访问外部类的私有成员不会破坏外部类的封装性。3. 内部类一共分为4类成员内部类、静态内部类、局部内部类、匿名内部类二、四种内部类介绍1. 成员内部类类比实例变量属于外部类的实例依赖外部类对象1. 位置定义在类内部、方法外面。2. 创建对象必须先创建外部类对象再创建内部类对象javaOuter o new Outer(); // 外部类对象Outer.Inner i o.new Inner(); //内部类对象3. 访问外部类 外部类名.this 用来访问外部类的属性、方法javaOuter.this.属性名;Outer.this.成员方法(参数);4. 限制成员内部类里面不能定义静态成员静态属性、静态方法2. 静态内部类类比静态变量被static修饰属于外部类本身不依赖外部实例1. 位置类内、方法外加 static 修饰。2. 可以定义实例变量也可以定义静态变量。3. 创建对象直接使用外部类的类名不需要外部类实例javaOuter.Inner i new Outer.Inner();4. 访问静态成员 外部类名.静态内部类名.静态成员javaOuter.Inner.静态属性名;Outer.Inner.静态方法(实参);5. 限制静态内部类只能访问外部类的静态成员静态属性、静态方法3. 局部内部类类比局部变量定义在方法里面作用域仅限当前方法1. 位置写在方法内部。2. 创建对象只能在定义它的方法内部并且在类定义代码之后创建对象。3. 访问方法内局部变量局部内部类可以访问方法里的局部变量JDK8之前局部变量必须加 final JDK8及以上编译器自动默认添加 final 这个特性叫语法糖。4. 匿名内部类特殊的局部内部类考试高频匿名内部类没有类名必须继承一个类 / 实现一个接口。1. 特点匿名内部类只能创建唯一一个对象类定义和对象创建写在一起。2. 语法格式java接口名 引用名 new 接口名(){//重写接口里面的抽象方法};3. 优缺点✅优点减少代码量代码逻辑连贯❌缺点可读性较差代码示例1实现接口javainterface IA{void m1();}public class Test{public static void main(String[] args){IA ia new IA(){public void m1(){System.out.println(重写m1方法);}};}}代码示例2继承普通类javapublic class Test {public static void main(String[] args) {MyClass mc new MyClass(){public void method(){System.out.println(子类覆盖后的方法。。);}};mc.method();}}class MyClass{public void method(){System.out.println(父类中method方法/...);}}三、快速记忆总结1. 成员内部类属于外部类实例 外部对象.new 内部类() 不能写static可访问外部所有成员。2. 静态内部类属于外部类 new 外部.内部() 只能访问外部static成员。3. 局部内部类写在方法内只能方法内使用访问局部变量自带final。4. 匿名内部类无类名一次性对象用来快速重写接口/父类方法。四、什么时候用内部类- 匿名内部类写回调、事件、接口一次性实现Swing、多线程Runnable常用- 静态内部类封装工具类比如 HashMap.Node- 成员内部类需要内部类持有外部类引用访问外部私有变量
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Linux命名管道FIFO深度解析:创建、阻塞、双向通信与生命周期管理 2026/10/1 23:15:02

Linux命名管道FIFO深度解析:创建、阻塞、双向通信与生命周期管理

上次把匿名管道聊透了,这次轮到命名管道(FIFO)。如果只看名字,你会觉得它和匿名管道没多大区别——不都是内核里那块缓冲区吗?但实际用起来,命名管道解决的恰恰是匿名管道最尴尬的问题:匿名管道…

阅读更多 →
Codex本地Agent配置体系:TOML与AGENTS.md优先级实战 2026/10/1 23:15:02

Codex本地Agent配置体系:TOML与AGENTS.md优先级实战

1. 从一次"配置不生效"说起:Codex 本地 Agent 的配置体系到底怎么运转很多人第一次接触 Codex 的本地自定义 Agent,都会经历一个非常相似的场景:照着文档把config.toml写好了,AGENTS.md也放在项目根目录了,结…

阅读更多 →
从零构建命令行AI助手:记忆系统设计与向量检索实战 2026/10/1 23:14:55

从零构建命令行AI助手:记忆系统设计与向量检索实战

从第1天开始,我每天逼自己产出一个能跑的东西,不是看视频、不是收藏教程,而是真的把代码写出来、跑起来、摔跟头、再爬起来。今天是第14天,我说实话,心里是有点悬的。前13天学的都是零散的知识块:Python语法…

阅读更多 →
RuoYi 组合拳 RCE 的代码审计与防御加固 2026/10/1 23:14:55

RuoYi 组合拳 RCE 的代码审计与防御加固

RuoYi 这套后台框架在国内中小型项目里的普及程度,基本上做 Java 后端的都碰过。但正因为用得多、改得多,围绕它的安全问题也一直没消停过。最近圈子里讨论比较多的一个词叫"组合拳 RCE",说的不是某一个孤立的漏洞编号,…

阅读更多 →
AI辅助客户资料整理:从散乱压缩包到可交付工作区 2026/10/1 23:14:41

AI辅助客户资料整理:从散乱压缩包到可交付工作区

1. 客户资料散乱这件事,到底卡在哪个环节做项目交付的人大概都有过这种体验:客户甩过来一个压缩包,解压之后里面躺着十几个文件夹,命名规则五花八门,有叫“新建文件夹”的,有叫“最终版”的,还有…

阅读更多 →
从零实现PyTorch多头注意力:原理、代码与调试避坑指南 2026/10/1 23:14:41

从零实现PyTorch多头注意力:原理、代码与调试避坑指南

1. 注意力机制到底解决了什么问题1.1 从翻译任务里的一个尴尬现象说起早些年做机器翻译的时候,我遇到过一个很典型的问题:输入一句中文“我爱吃苹果”,模型翻译成英文时,前面几个词都翻得挺准,到了“苹果”这里&#x…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉