JavaSE基础语法:特殊类(特殊情景下的设计模式)
一、单例设计模式1.作用确保某个类只能创建一个对象避免浪费内存产生无效的资源占用2.写法/实现步骤eg1——饿汉式单例预制拿对象时对象已经提前创建好把类的构造器私有化定义一个类变量记住类的一个对象定义一个类方法返回对象public class A{ //2.定义一个类变量记住类的一个对象 private static(final) A anew A(); //1.私有化构造器 private A(){} //3.定义一个 类对象返回方法 public static A getObject(){return a;} }eg2——懒汉式单例用才创建需要用对象时才开始创建私有构造器定义静态变量用于存储对象提供静态方法保证返回的是同一个对象public class A{ //2.定义一个类变量记住类的一个对象 private static(final) A a;//null //1.私有化构造器 private A(){} //3.定义一个 类对象返回方法 public static A getObject(){ if(anull){anew A();} return a; } }二、枚举类enum1.作用做信息分类和标志限制传入参数范围实现类型安全普通常量只是数值编译器无法校验传入的值是否合法枚举可以统一管理一组固定有限的常量可读性更强2.写法枚举类第一行只能写枚举类的对象名称且要用逗号隔开这些名称本质是常量每个常量static final都记住了枚举类的一个对象修饰符 enum 枚举类名{ 名称1,名称2,名称3; // 分号如果后面有成员变量、构造、方法分号不能省略 其他成员... }3.特点图注右侧是反编译的代码枚举类都是最终类不可以被继承枚举类都是继承java.lang.Enum类的所以也不能继承其他类枚举类的第一行只能罗列一些名称这些名称是常量并且每个常量会记住枚举类的一个对象枚举类的构造器都是私有的写不写都只能是私有的因此枚举类对外不能创建对象编译器会为枚举类增添几个方法比如 name()名字ordinal()索引/位置三、抽象类abstract1.作用作为特殊的父类让子类继承并实现即为了更好地支持多态非必须优化需要但是需要注意的是一个类继承抽象类之后必须要重写继承的所有抽象方法否则这个类也必须要定义成抽象类2.写法修饰符 abstract class 类名{ 修饰符 abstract 返回值类型 方法名称(形参列表); //抽象方法只能abstract修饰只有方法签名没有方法体 }抽象类中不一定要有抽象方法但有抽象方法的一定是抽象类类有的成员成员变量、方法、构造器、抽象类都可以有只不过多了一个可以有抽象方法缺抽象类不能够创建对象进作为一个特殊的父类让子类继承并实现3.应用场景最佳实践当所有子类都需要这个功能但是每个子类用法都不一样时便可以使用抽象方法虽然空方法也可以但是抽象方法更符合最佳实践的思想更简洁更高级模板方法设计模式简单来说就是提供了一个方法作为某类功能的模板模板方法封装了每个实现步骤但允许子类提供特定步骤的实现这样可以提高代码的复用、并简化子类的设计这里其实可以为write方法加上final关键字防止子类更改模板方法注意不可以添加static关键字因为静态方法并不支持多态已知静态方法想要调用常态方法需要通过对象但抽象类没有对象所以会发生编译错误四、接口1. 作用定义行为规范标准对外暴露能力实现多实现弥补 Java 类单继承的局限用于解耦面向接口编程2. 基础写法修饰符 interface 接口名{ //抽象方法JDK8之前唯一成员 public abstract void run(); }类实现接口使用关键字implementspublic class Student implements 接口名{ //必须重写所有抽象方法 Override public void run(){} }3. 核心特点接口不能创建对象JDK8 版本划分JDK7 及以前接口只能有全局常量、抽象方法常量默认public static final可以省略抽象方法默认public abstract可以省略JDK8 新增默认方法 (default)、静态方法 (static)JDK9 新增私有方法 private一个类可以同时实现多个接口class A implements B,C{}接口与接口之间可以使用extends继承支持多继承interface A extends B,C{}接口没有构造器4. 重要规则普通类实现接口必须重写接口全部抽象方法 抽象类实现接口可以不重写抽象方法交给子类完成。5. 抽象类和接口的区别抽象类用class单继承可以有实例变量、构造器侧重模板、公共代码复用接口用interface多实现只能定义常量侧重行为规范、能力标准6. 拓展接口① 默认方法 defaultJDK8作用接口升级时不用强迫所有实现类重写新增方法 只能通过实现类对象调用子类可以选择重写。default void test(){}② 静态方法 staticJDK8只能通过 接口名。方法名 () 调用实现类对象不能继承、不能调用。static void test(){}③ 私有方法 privateJDK9供接口内部的默认方法互相调用外部无法访问

相关新闻

制造业SOP执行看不见?深圳合米科技视觉AI,量化产线员工岗位操作行为。

制造业SOP执行看不见?深圳合米科技视觉AI,量化产线员工岗位操作行为。

摘要:制造业SOP执行的微小偏差如何精准捕捉?合米科技AI系统实时比对操作动作,毫秒级预警纠偏,让95%的合规率成为标配,不良品率骤降,老师傅经验终被数据化传承。产线IPQC人工巡检能百分百全面覆盖吗&#xf…

2026/9/21 2:10:04 阅读更多 →
Cubiomes Viewer使用教程:Minecraft种子查找与地图分析的终极指南

Cubiomes Viewer使用教程:Minecraft种子查找与地图分析的终极指南

Cubiomes Viewer使用教程:Minecraft种子查找与地图分析的终极指南 【免费下载链接】cubiomes-viewer An efficient graphical Minecraft seed finder and map viewer. 项目地址: https://gitcode.com/gh_mirrors/cu/cubiomes-viewer 拿到一个新世界&#xff…

2026/10/2 7:08:22 阅读更多 →
【大模型RAG生成式AI开发实战】《大模型RAG生成式AI开发实战》_9.[第1章 RAG基础概念] RAG性能评估体系:准确率、召回率和响应时间

【大模型RAG生成式AI开发实战】《大模型RAG生成式AI开发实战》_9.[第1章 RAG基础概念] RAG性能评估体系:准确率、召回率和响应时间

RAG不是搭起来就能跑!不懂这三把尺子,你的AI应用就是"盲人摸象"!本文将从"为什么要评估"的认知破局讲起,深入拆解准确率、召回率、响应时间三大核心指标,带你避开"感觉良好"的玄学陷阱。…

2026/10/3 1:37:01 阅读更多 →

最新新闻

AI编程插件本质:可验证服务节点与SDK契约体系

AI编程插件本质:可验证服务节点与SDK契约体系

1. “plugins”不是功能模块,而是现代AI编程工具的神经突触你点开Cursor、Codex或Zcode这类AI编程工具的设置页,看到“Plugins”那一栏时,第一反应可能是——这不就是VS Code里装个Prettier、ESLint那种插件?点几下安装完事。但实…

2026/10/4 10:31:11 阅读更多 →
插件加载失败完整排查指南:从报错拆解到根因定位

插件加载失败完整排查指南:从报错拆解到根因定位

凌晨两点,群里有人甩了一张截图过来:failed to load plugins web boot: 2 entries did not activate linxin666/dsh-p。配文是"我就装了个插件,怎么 IDE 直接瘫痪了?"我盯着那行报错看了几秒,心想这不是个例…

2026/10/4 10:31:11 阅读更多 →
告别写死数据:Django连接数据库从零到企业级落地

告别写死数据:Django连接数据库从零到企业级落地

上周帮一个刚转行的朋友调代码,他的项目里二十几个 Python 列表把所谓“系统数据”写得明明白白:用户名单、库存清单、订单状态、菜单权限……数据全写在代码文件里,页面跑起来很顺,演示效果也不错。可一说到“企业级项目”&#…

2026/10/4 10:31:11 阅读更多 →
MRAM替代Flash的工业存储方案:PIC18F4458 SPI驱动与掉电安全设计

MRAM替代Flash的工业存储方案:PIC18F4458 SPI驱动与掉电安全设计

从一次真实的掉电事故说起。我在做一套工业设备参数记录板时,原本用的是一颗串行Flash,跑着跑着发现一个诡异现象:设备正常断电时数据都还在,一旦产线上有人直接拉闸,重启后偶尔会出现参数变成全0xFF或者上一版本数据的…

2026/10/4 10:31:11 阅读更多 →
ResizeObserver 完全指南:原理、API、踩坑与实战场景

ResizeObserver 完全指南:原理、API、踩坑与实战场景

1. 为什么前端需要 ResizeObserver做前端这些年,凡是跟布局沾边的需求,几乎都躲不开一个 API——ResizeObserver。这个名字看起来平平无奇,说白了就是监听元素尺寸变化,但实际用起来才会发现,它解决的痛点比想象中大得…

2026/10/4 10:31:11 阅读更多 →
OpenFront 匹配系统集成测试指南:contained / E2E / 取消重排队三套 Harness 全解析

OpenFront 匹配系统集成测试指南:contained / E2E / 取消重排队三套 Harness 全解析

游戏开发后端 【免费下载链接】OpenFrontIO Online browser-based RTS game 项目地址: https://gitcode.com/gh_mirrors/op/OpenFrontIO 点击查看 免费下载 导读 OpenFront(基于浏览器的开源 RTS 游戏)的匹配系统由闭源 API worker 负责撮合…

2026/10/4 10:30:11 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →