封装是通过将属性设为private并提供public的getter和setter方法来实现,可在方法中加入数据验证逻辑,如Person类中对name和age的合法性检查,从而保护数据安全并提升代码可维护性。

封装是面向对象编程的三大基本特征之一,它指的是将对象的属性和行为(方法)捆绑在一起,并对外隐藏内部实现细节。在Java中,封装的核心目的是提高安全性、增强代码的可维护性,并降低外部对对象内部状态的直接干预。
什么是封装
封装通过限制对类成员的直接访问来保护数据。通常,类的字段(成员变量)被设置为私有(private),只能通过公共(public)的方法进行读取或修改。这样可以在方法中加入逻辑控制,比如数据校验,防止非法赋值。
如何实现封装
在Java中实现封装,主要遵循以下几个步骤:
- 将字段声明为 private:确保外部无法直接访问对象的数据。
- 提供 public 的 getter 和 setter 方法:用于安全地获取和设置字段值。
- 在 setter 方法中添加数据验证:防止无效数据被赋值。
- 合理设计构造方法:初始化对象时也应遵循封装原则。
public class Person {
private String name;
private int age;
// Getter 方法
public String getName() {
return name;
}
// Setter 方法
public void setName(String name) {
if (name != null && !name.isEmpty()) {
this.name = name;
} else {
System.out.println("姓名不能为空");
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0 && age <= 150) {
this.age = age;
} else {
System.out.println("年龄必须在0到150之间");
}
}
}
封装的好处
使用封装后,代码更加健壮和灵活:
立即学习“Java免费学习笔记(深入)”;
- 提高了数据的安全性,避免被随意修改。
- 便于后期维护,修改内部逻辑不影响外部调用。
- 可以对数据进行有效验证,保证对象状态的合法性。
- 支持“只读”或“只写”属性,通过是否提供 getter 或 setter 来控制。










