封装通过私有化属性和提供公共访问方法实现,如将学生类的姓名、年龄设为private,并在setter中校验age>0且age<150,确保数据安全。

Java中的封装是面向对象编程的三大特性之一(另外两个是继承和多态),它主要体现在以下几个方面:
1. 属性私有化(private字段)
通过将类的属性声明为 private,限制外部直接访问,防止数据被随意修改。这是封装的基础。
例如:
一个学生类中,姓名和年龄应由类自身控制,而不是让外部代码直接赋值。
使用 private 修饰字段后,只能在本类中访问,提高了安全性。
立即学习“Java免费学习笔记(深入)”;
2. 提供公共的访问方法(getter/setter)
在私有字段的基础上,提供 public 的 getter 和 setter 方法,用于读取和修改属性值,可以在方法中加入逻辑校验。
例如:
- 在 setAge() 中判断传入的年龄是否合法(如 age > 0 且 age
- 在 getName() 中可以返回处理后的结果,比如首字母大写
这样既保证了数据的安全性,又提供了可控的访问方式。
3. 将数据和操作数据的方法绑定在一起
类不仅包含字段,还包含与这些字段相关的操作方法。把数据和行为封装在同一个类中,形成一个独立的单元。
例如:
- 一个银行账户类(Account)包含余额(balance)字段和存款(deposit)、取款(withdraw)方法
- 取款时自动检查余额是否足够,避免非法操作
这种设计让类的使用者无需了解内部实现细节,只需调用方法即可完成操作。
4. 隐藏实现细节,提高可维护性
封装使得类的内部实现可以自由修改,只要对外提供的方法不变,就不会影响其他代码。
例如:
- 原本用数组存储数据,后来改为集合,外部调用不受影响
- 字段名或计算逻辑改变时,只需调整内部代码
这降低了代码耦合度,提升了程序的可维护性和扩展性。
基本上就这些。封装的核心思想就是“对外隐藏,对内可控”,通过权限控制和方法暴露来实现数据的安全与灵活管理。不复杂但容易忽略细节。


