news 2026/5/1 2:44:13

java_base_面向对象原理省流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java_base_面向对象原理省流

每日一学:基础知识精讲

ok,终于也是要写完了,真是令人激动。话不多说有请今天的主角——封装(Encapsulation),依然用邮轮运输的场景讲透核心逻辑。

封装的核心:“打包+控权

其本质可以总结两个方面

1.打包:把对象的“属性(数据)”和“操作属性的方法(行为)”捆绑在一起,形成一个独立的“类”(比如邮轮的“船名,载货量”是属性,“运输货物”是方法,打包在CargoShip类里)

2.控权:隐藏对象内部的敏感细节,只对外暴露“安全的接口”-----简单来说就是“不该看的不让看,不该改的不让改”。

拿之前的例子来类比,就像邮轮的驾驶室---普通乘客(外部代码)不需要知道方向盘怎么联动船舵,发动机怎么调功率(隐藏内部细节),只需要通过“船长下达指令”这个接口(公开方法),让邮轮按规则航行(执行逻辑);如果谁都能直接掰方向盘,邮轮很容易失控(数据被随意修改导致错误)

我们基于之前的邮轮代吗,给货运邮轮/客运邮轮嘉善封装特性,对比 “未封装” 和 “封装” 的区别:

上述代码,明显可以看出我可以随意赋值,甚至连负数都能写,这样严重破坏数据合理性,导致业务逻辑出错

上面是经过封装后的货运邮轮类

数据安全:通过setter 添加校验逻辑,避免非法数据(比如负数,空船名)进入,保证了业务逻辑的正确性。

降低耦合:外部代码只依赖公开接口(get/set/transport),不关心内部属性怎么存储、方法怎么实现 —— 比如后续修改 “载货量” 的单位(吨→千克),只需改 setter 和 transport 方法,外部代码无需改动。

易维护:所有对数学的操作都集中在类内部,出问题只需排查类里的接口,不用翻遍所有外部代码。

结合之前的内容,四大特写不是孤立的:

父类TransportShip封装通用的属性(船名)和方法(transport),子类继承后,再封装自己的特有属性(载货量 / 载客量)。

子类重写 transport 方法体现多态,而重写的方法内部依赖封装的私有属性,保证数据安全。

总结:继承解决 “复用”,多态解决 “灵活”,封装解决 “安全”,抽象解决 “规范”—— 四大特性相互配合,才是面向对象的完整逻辑。

新手提醒

  1. 过度封装:给所有属性都加 get/set,哪怕属性完全不需要外部访问(比如邮轮的 “发动机编号”);
  2. 封装不全:属性私有化了,但 setter 没加校验(比如允许载客量为负数),等于白封装;
  3. 打破封装:为了方便,在子类里直接访问父类的私有属性(正确做法是用父类的公开接口)。

最后感谢各位的观看!下一期讲解一下常用的设计模式,我会结合原神的场景介绍一下他们都用了哪些设计模式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 17:14:23

openi启智社区提供大模型在线体验功能

openi启智社区提供大模型在线体验功能,可以根据自己的任务场景选择合适的模型和计算资源,创建模型在线体验任务,从而在线检验模型的反应效果。 网址:OpenI - 启智AI开源社区提供普惠算力! 有很多模型可以选 每个账户…

作者头像 李华
网站建设 2026/4/25 8:17:10

xcode也有了自己独有的Ai本地大语言模型支持了

开启这个功能,就会提示需要下载一个2G的本地大语言模型,下载完成后重启xcode,写代码就会有提示。比如下面的示例:测试下来虽然没有 GitHub Copilot for Xcode 聪明,也没有 GitHub Copilot for Xcode响应块,…

作者头像 李华
网站建设 2026/4/17 4:32:49

ConcurrentHashMap从分段锁到CAS+synchronized

🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐➕关注👀是作者创作的最大动力🤞 💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝关注👀欢迎…

作者头像 李华
网站建设 2026/4/29 21:55:27

“AI写的论文,参考文献靠谱吗?”-虎贲等考AI:所有参考文献都来自知网/维普可查

一、引言:AI 论文参考文献的信任危机与破局点随着人工智能写作工具在学术领域的普及,“AI 生成论文的参考文献是否靠谱” 成为科研工作者、学生群体关注的核心议题。部分早期 AI 工具因缺乏权威数据源支撑,曾出现参考文献虚假标注、链接失效、…

作者头像 李华
网站建设 2026/4/29 17:46:22

AI在软件测试中的理想与现实:一场尚未到来的革命

75%的企业将AI驱动测试视为2025年战略重点,但实际采用率仅为16% 引言:高期望与低落的现实 在人工智能席卷各行各业的今天,抛开软件开发,软件测试领域似乎也站在变革的风口浪尖。行业调查显示,超过75%的企业将AI驱动测…

作者头像 李华
网站建设 2026/4/18 22:03:09

项目实战04——机器学习赋能餐饮业(含代码、数据)

机器学习在餐饮企业中的应用方向 机器学习技术可帮助餐饮企业优化运营、提升顾客体验并增加利润。常见应用包括需求预测、菜品推荐、动态定价、库存管理、顾客细分等。通过分析历史销售数据、天气、节假日等因素,预测未来需求,减少浪费并提高备货效率。 1. 餐饮企业现状与需…

作者头像 李华