新闻详情

新闻详情

首页 / 资讯中心 / 详情

封装基础知识

发布时间:2026/10/1 11:40:15来源:尧图网络
封装基础知识
知识点为什么要封装、如何实现封装一、为什么要封装封装把对象的属性和方法放在类的内部隐藏细节只暴露必要入口。1.1 现实例子手机你不需要知道屏幕、电池、芯片怎么工作你只需要使用开机、打电话、拍照等功能。1.2 封装的好处好处说明隐藏细节外部不需要知道类的内部实现提高安全防止外部随意修改数据便于维护修改内部代码不影响外部调用降低耦合类与类之间依赖更少1.3 没有封装的问题如果属性公开外部可以任意赋值数据容易出错。public class Student { public String name; public int age; }public class Test { public static void main(String[] args) { Student s new Student(); s.age -18; // 不合理但能直接修改 } }问题年龄是负数业务上不合理但public属性无法限制。二、如何实现封装2.1 封装的步骤属性使用private修饰对外提供getXxx()方法读取属性对外提供setXxx()方法修改属性在setXxx()中加入条件判断。2.2 代码示例public class Student { // 1. 属性私有化 private String name; private int age; // 2. 提供get方法读取属性 public String getName() { return name; } // 3. 提供set方法修改属性 public void setName(String name) { this.name name; } public int getAge() { return age; } public void setAge(int age) { // 4. 在set方法中加入条件判断 if (age 0 age 120) { this.age age; } else { System.out.println(年龄不合法); } } }public class TestStudent { public static void main(String[] args) { Student s new Student(); s.setName(张三); s.setAge(18); System.out.println(s.getName()); // 张三 System.out.println(s.getAge()); // 18 s.setAge(-18); // 年龄不合法 } }2.3 方法封装除了属性方法也可以封装。public class Student { private String name; public String getName() { return name; } public void setName(String name) { this.name name; } // 对外提供统一入口 public void showInfo() { System.out.println(name); } }三、封装的规范总结成员权限原因属性private防止外部直接修改get/set 方法public对外提供访问入口工具方法private只在类内部使用对外功能方法public方便外部调用本章小结封装目的隐藏内部细节保护数据安全。实现方式属性private提供getXxx()和setXxx()。业务判断在setXxx()中校验数据是否合法。好处安全、清晰、易维护、降低耦合。
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

Windows安全加固实战:账号口令、服务裁剪与防火墙收敛指南 2026/10/1 13:07:00

Windows安全加固实战:账号口令、服务裁剪与防火墙收敛指南

说实话,我在帮朋友和企业排查 Windows 机器问题时,最怕看到的场景就是:系统装完直接开机连上网络,远程桌面开着、Administrator 密码还是 Admin123、补丁几个月没更新、默认共享一个不少。这不是个案,而是相当普遍的“…

阅读更多 →
ES Module import outside a module 报错排查 2026/10/1 13:07:00

ES Module import outside a module 报错排查

Uncaught SyntaxError: Cannot use import statement outside a module这行红字,几乎是我每次带新人时都会见到的一道坎。它不挑框架,不管你是写原生 JS、用 Vite 起 Vue3 项目、还是在 Node 里跑一个脚本,只要import statement出现的位置不对…

阅读更多 →
RAG找答案,Wiki长知识:企业级知识库问答系统落地实践 2026/10/1 13:07:00

RAG找答案,Wiki长知识:企业级知识库问答系统落地实践

开篇先聊点实在的。今年做AI应用,如果只让我推荐一个最值得投入的技术组合,我会毫不犹豫选“RAG Wiki”。这八个字几乎覆盖了目前企业级知识问答、个人知识库、文档助手的最优解:RAG负责“精准找答案”,Wiki负责“体系化长知识”…

阅读更多 →
TIA Portal全集成自动化工程实践指南 2026/10/1 13:07:00

TIA Portal全集成自动化工程实践指南

1. 项目概述:这不是一款“软件”,而是一套工业自动化的操作系统“西门子博图软件应用”——这七个字在工控圈里,几乎等同于“入行敲门砖”和“项目交付生死线”。我干自动化集成这行十二年,从最早用Step 7带软狗跑S7-300&#xff…

阅读更多 →
AI智能体训练新方法与模型部署实战:从强化学习到内容安全边界 2026/10/1 13:07:00

AI智能体训练新方法与模型部署实战:从强化学习到内容安全边界

早上扫了一圈9月24日的AI信息流,最大的感受是:讨论重心已经从"哪个模型又刷新了榜单"悄悄转移到了"这套东西到底怎么落地、怎么测、怎么管住安全边界"。今天至少有三条线值得从业者关注:DeepSeek公开了AI智能体训练的新方…

阅读更多 →
笔记本USB全部失灵蓝屏?从驱动冲突到PCH虚焊的排查指南 2026/10/1 13:06:53

笔记本USB全部失灵蓝屏?从驱动冲突到PCH虚焊的排查指南

前阵子朋友抱来一台神舟战神笔记本,说电脑用着用着U盘突然没反应,外接鼠标虽然亮了,但指针一动不动,紧接着屏幕直接蓝屏。重启之后看起来一切正常,可只要USB设备一多插,或者机器稍微运行一会儿,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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