面向对象——封装(隐藏)
类的结构:内部为私有的实现细节,外部为公共API
“公共API”是指对象的对外接口,由对象的方法构成,其他对象通过这些接口向对象发消息,请求对象的服务。对象的变量与实现构成了对象的内核,对象的方法包裹着对象的内核,使对象的内核能够对程序中其他对象隐藏。使用对象的方法将对象的变量与实现保护起来,就称为封装。对象中的数据封装同时也实现了对象的数据隐藏。这种结构称为理想结构,实际中对象可能需要暴露一些变量或隐藏它的一些方法。数据隐藏是通过对象成员的访问控制实现的。四种访问控制。
封装的意义:
① 模块化(对象的代码能够形成独立的整体,单独进行实现与维护,并使对象能够在系统内方便地进行传递)
② 保证对象数据的一致性并易于维护(接口通信,变量和实现隐藏,使得对象的私有信息被有效保护起来,防止外界对对象私有信息的修改,保证一致性。开发者可以随时修改数据和方法,不影响调用对象接口的其他程序)
封装可以实现以下目的:
① 隐藏类的实现细节
② 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问
③ 进行数据检查,有利于保证对象信息的完整性
④ 便于修改,提高代码可维护性
封装的含义:该隐藏的隐藏,该暴露的暴露
常量和static可以public,一般成员变量私有。
使用访问控制符,实现封装:
封装的要点:
①类的属性的处理
- 一般使用private(除非本属性确定会让子类继承)
- 提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的读取操作(boolean变量的get方法是用 is 开头)
②一些只用于本类的辅助性方法可以用private,希望其他类调用的方法用public
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术