新闻详情

新闻详情

首页 / 资讯中心 / 详情

11.内部类

发布时间:2026/9/28 21:19:25来源:尧图网络
11.内部类
一、基本概念内部类定义在另一个类的内部的类。// 外部类 class Outer{ // 内部类 class Inner{} }内部类编译完成后会生成独立的 .class 文件文件命名格式外部类类名$内部类类名.class。内部类可以直接访问外部类的私有成员同时不会破坏外部类的封装特性。内部类一共分为 4 种成员内部类、静态内部类、局部内部类、匿名内部类。二、内部类的 4 种分类1. 成员内部类类比实例变量(1) 位置写在外部类里面、方法体外面。(2)创建对象成员内部类对象必须依托外部类实例对象才能创建。Outer o new Outer(); // 先创建外部类对象 Outer.Inner i o.new Inner();// 再创建成员内部类对象(3) 在内部类中访问外部类当前对象使用外部类类名.this外部类类名.this.属性名访问外部类的成员属性外部类类名.this.成员方法名(参数)调用外部类的成员方法(4) 限制成员内部类里面不能定义静态属性与静态方法。2. 静态内部类类比静态变量(1) 位置写在外部类内部、方法外部使用static修饰。(2) 静态内部类中既可以定义实例变量也可以定义静态变量。(3) 创建对象仅需要外部类的类名不需要外部类实例。Outer.Inner i new Outer.Inner();(4) 访问静态内部类的静态成员外部类类名.静态内部类类名.静态成员plaintext外部类类名.静态内部类类名.静态属性名外部类类名.静态内部类类名.静态方法名(实参);(5) 访问权限静态内部类只能访问外部类的静态成员静态属性、静态方法不能直接访问外部类实例成员。3. 局部内部类类比局部变量(1) 位置定义在方法的内部。(2) 对象创建只能在定义该局部内部类的方法内、类定义完成之后创建它的对象。(3) 访问方法局部变量局部内部类的方法可以访问所在方法中的局部变量但该局部变量必须被final修饰。补充说明JDK 8 及以上为语法糖机制当编译器检测到局部变量被局部内部类的方法调用时会自动隐式给变量加上final不需要手动书写。4. 匿名内部类特殊的局部内部类(1) 要求匿名内部类必须继承某个父类或者实现某个接口。(2) 特点一个匿名内部类仅能生成一个实例对象类的定义与对象创建写在一起没有类名。(3) 基础语法java运行接口名 引用变量 new 接口名(){// 实现接口的抽象方法};(4) 优缺点优点减少代码书写量代码逻辑连贯。缺点缺少类名代码可读性较差。示例 1实现接口的匿名内部类interface IA{ void m1(); } public class Test{ public static void main(String[] args){ IA ia new IA(){ Override public void m1(){ // 方法实现逻辑 } }; } }示例 2继承普通类的匿名内部类public class Test { public static void main(String[] args) { MyClass mc new MyClass(){ Override public void method(){ System.out.println(子类重写后的方法……); } }; mc.method(); } } class MyClass{ public void method(){ System.out.println(父类中method方法……); } }
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

Substrate区块链框架:核心原理与开发实战指南 2026/9/28 22:07:34

Substrate区块链框架:核心原理与开发实战指南

Substrate这个名词,在区块链圈子里已经被说滥了,但真正动手用过的人并不多。你搜索这个词,翻来覆去看到的可能是“Polkadot生态”、“一键发链”、“Rust框架”这些标签,却很少有人能讲清楚:Substrate到底是什么、它帮…

阅读更多 →
漫画助手V6脚本助手:Stable Diffusion批量出图自动化与参数配置指南 2026/9/28 22:07:27

漫画助手V6脚本助手:Stable Diffusion批量出图自动化与参数配置指南

简介:这份资源是面向Stable Diffusion用户的漫画创作辅助脚本工具,主要解决AI绘画流程中批量生成、参数调节与漫画分镜处理等重复性操作问题,适合已具备SD基础操作能力、希望提升出图效率的插画爱好者与漫画创作者。压缩包共3个文件&#xff…

阅读更多 →
Agent Substrate与gRPC在云原生调度系统中的协同实践 2026/9/28 22:07:27

Agent Substrate与gRPC在云原生调度系统中的协同实践

我无法根据当前输入生成符合要求的博文。原因如下:项目标题仅为单个字母“ax”,无明确语义指向,无法界定所属领域(是缩写?代号?变量名?产品名?技术术语?)&…

阅读更多 →
从零构建统一CLI工具:插件化架构与工程实践 2026/9/28 22:07:20

从零构建统一CLI工具:插件化架构与工程实践

1. 项目缘起:为什么我需要一个“什么都能管”的CLI工具我每天的工作流里,至少有二十个重复动作:临时启动某个微服务、翻日志、批量改文件名、转格式、调API、跑定时任务……以前这些事散落在不同的脚本和工具里,有的用Shell&#…

阅读更多 →
Vivado 2025.1与VCS 2024.SP1联合仿真环境搭建及Verdi调试实战 2026/9/28 22:06:51

Vivado 2025.1与VCS 2024.SP1联合仿真环境搭建及Verdi调试实战

1. 联合仿真环境搭建的整体思路与选型考量做FPGA验证这行十几年,我见过太多人在仿真环境搭建这一步反复折腾。Vivado自带的仿真器跑小规模测试还行,一旦涉及复杂IP核、大规模逻辑或者需要更精细的调试手段,就力不从心了。VCS作为业界老牌的数…

阅读更多 →
投机解码提速三倍?AI推理优化与Agent落地实战全解析 2026/9/28 22:06:24

投机解码提速三倍?AI推理优化与Agent落地实战全解析

今天是2026年9月18日,这期科技AI资讯日报照例从HackerNews的热榜开始。从昨夜到今晨,技术版讨论得最凶的几个话题分别是:开源推理引擎的投机解码优化、AI Agent能否写生产代码的正反论战,以及PyCharm AI插件在真实重构场景里的表现…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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