访问修饰符

Java 通过访问修饰符控制类、方法和变量的可见性,这是实现封装的基础。

修饰符 同类 同包 子类 其他
public
protected
默认(不写)
private

Getter 和 Setter

将属性设为 private,通过公共的 getter/setter 方法来访问,可以在方法中添加数据校验逻辑。

封装示例
public class Person {
    // 私有属性,外部无法直接访问
    private String name;
    private int age;

    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter 方法 - 获取属性值
    public String getName() {
        return name;
    }

    // Setter 方法 - 设置属性值
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    // 在 Setter 中进行数据校验
    public void setAge(int age) {
        if (age >= 0 && age <= 150) {
            this.age = age;
        } else {
            System.out.println("年龄输入无效!");
        }
    }
}
✅ 封装的好处

1. 隐藏实现细节,降低复杂度
2. 可以对数据进行校验,保证数据安全
3. 便于修改内部实现,不影响外部调用

课后练习

以下代码主要体现了封装的哪个好处?

代码片段
public void setAge(int age) {
    if (age >= 0 && age <= 150) {
        this.age = age;
    } else {
        System.out.println("年龄无效!");
    }
}
A 代码复用
B 多态性
C 数据校验
D 继承特性