28面向对象(中级)-封装

1.什么是封装?

把属性私有化,对外提供公共的访问方法,隐藏内部实现,只暴露必要接口。

再通俗一点:把东西装起来,不让别人随便乱改,只留一个安全的口子让别人用。

2. 封装做了两件事

  1. 隐藏 :用 private 把成员变量私有化,外部不能直接访问、乱改。
  2. 暴露 :提供 public 的 getXxx() / setXxx() 方法,让外部可控地读写。

3. 封装的好处

(1)隐藏实现细节

内部怎么实现的,外部不用知道,也不能乱改。

(2)数据安全

防止外部随意赋值,避免非法数据。

(3)提高可维护性

以后内部逻辑改了,只要对外方法不变,外部代码不用动。

(4)简化使用

外部只需要调用方法,不用关心内部复杂逻辑。

4.封装的实现步骤

5.一些细节

(1)构造器与set方法结合

如果在构造器中也需要对属性进行保护,可以在构造器中调用set,get方法。

相关推荐
EatFan5 小时前
Spring Boot 4 落地观察:从 yudao-cloud、matecloud、JPower 看国产脚手架的升级路线与迁移清单
java·spring boot·后端·spring cloud·微服务·后端开发·jdk 21
Maiko Star6 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
现任明教教主~8 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
一条破秋裤8 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
布吉岛的石头8 小时前
Java 程序员第 49 阶段5:BERT 预训练目标 MLM+NSP 的工程含义
java·人工智能·深度学习·bert·transformer
摇滚侠9 小时前
《On Java 中文版 基础卷》阅读笔记 对象无处不在 03
java·笔记·python
二十雨辰10 小时前
[学成在线]-01项目背景
java
弈栈录10 小时前
Java AI 应用的异步化与高并发设计
java·后端·架构
落魄实习生11 小时前
Agent Scope Java 2.x 系列【2】 ReActAgent
java·开发语言
艸肅11 小时前
Ubuntu 安装 JDK (含手动安装)
java·ubuntu·jdk