到底什么是封装?一篇文让你彻底搞懂!
封装,简单说就是把东西包起来,藏起来一部分,只露有用的。就像你用的手机,内部复杂的电路和芯片被外壳包住,你只需按屏幕和按键就能使用,不用关心里面怎么工作。一、封装到底是什么?——核心概念
1.1 像个“黑盒子”:只看外表,不看内脏
* 里面复杂,但外面简单。比如一台电视机,你不用知道显像管怎么发光,会用遥控器就行。 * 用户不用关心内部细节,只需要知道怎么“使用”这个封装好的东西。1.2 “有权限”的访问:不是什么都给你看
* 公开你需要的,隐藏你不需要的。比如一个人的年龄,可能只对外展示“成年”或“未成年”,而不是具体数字。 * 拒绝“随意访问”,内部的关键部分要有保护措施。二、为什么需要封装?——决什么问题
2.1 保护内部数据,不让乱改
* 如果数据可以随便改,容易出错。 * 比如一个余额数字,不能让别人直接改成1亿。2.2 简化操作,用起来方便
* 用户不需要记太多东西,只需要调用封装好的功能。 * 比如点外卖,你不用知道厨师怎么做的,点就行。2.3 隔离变化,改内部不影响外部
* 如果内部实现变了,只要对外的接口没变,用户感觉不到。 * 比如APP更新了,你之前会用的功能现在还是那样用。三、怎么实现封装?——简单步骤
3.1 把不想让人直接碰的藏起来
* 在代码里,通常用“私有”private关键字标记。 * 比如一个类里的“密码”字段,设为私有。3.2 提供“正门”,控制访问
* 如果需要修改或获取隐藏的数据,提供“公开”public的方法。 * 比如提供 `setPassword(newPassword)` 和 `getPassword()` 方法,在方法里可以加验证如密码强度。3.3 代码示例伪代码
``` class 人 { // 隐藏的数据 私有 年龄;// 公开的方法 - 控制访问 公开 设定年龄(新年龄) { if (新年龄 > 0 && 新年龄 < 150) { 年龄 = 新年龄; } else { 提示:年龄输入错误! } }
公开 获取年龄() { return 年龄; } } ```
