java 如何封装类
封装类的概念
封装是面向对象编程的三大特性之一(封装、继承、多态),指将数据(属性)和行为(方法)捆绑在一起,并对外隐藏内部实现细节。通过访问修饰符(如 private、public)控制外部对类成员的访问权限。
实现封装的核心步骤
定义私有属性
使用 private 修饰符声明类的属性,限制外部直接访问。
private String name;
private int age;
提供公共方法(Getter/Setter)
通过公共方法(如 getXxx() 和 setXxx())间接访问或修改私有属性,可在方法中添加逻辑控制。
public String getName() {
return name;
}
public void setName(String name) {
if (name != null && !name.isEmpty()) {
this.name = name;
}
}
构造方法封装
通过构造方法初始化对象时,可对参数进行校验或处理。

public Person(String name, int age) {
this.name = name;
if (age > 0) {
this.age = age;
}
}
封装的优势
- 数据安全:防止外部直接修改敏感数据(如通过
setAge限制年龄为正值)。 - 灵活性:内部实现可变更(如将
age存储为LocalDate计算得出),不影响外部调用。 - 易于维护:集中控制数据逻辑(如日志记录、数据校验)。
完整示例
public class Person {
private String name;
private int age;
// 构造方法
public Person(String name, int age) {
setName(name);
setAge(age);
}
// Getter 方法
public String getName() {
return name;
}
// Setter 方法(带校验)
public void setName(String name) {
if (name != null && !name.isEmpty()) {
this.name = name;
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}
注意事项
- 对于不可变类(如
String),可省略 Setter 方法,仅通过构造方法初始化。 - 布尔类型属性的 Getter 方法命名通常为
isXxx()(如isStudent())。 - 避免过度封装:简单数据类(如 DTO)可直接使用公共属性。






