Java 面向对象-封装

何为封装(Encapsulation)

面向对象的开发原则为“高内聚,低耦合”,即类的内部数据操作细节自己完成,不允许外部干涉,仅暴露少量方法给外部调用使用。例如,开车,我们无需懂得油门、离合、变速箱也可以驾驶。

  • 封装性本质是解耦(decouple) 的表现

在JAVA中,实现封装就是控制类或成员的可见范围,即需要依赖访问控制修饰符,又称权限修饰符。
JAVA有四种权限修饰符有:public \ protected \ 缺省 \ private

修饰符 本类内部 本包内 其他包的子类 其他包非子类
private × × ×
缺省 × ×
protected ×
public ×

封装性体现

  • 成员变量私有化

私有化类的成员变量,提供get和set方法,以供外界调用。好处是让调用者按照预先设计的方法来访问数据,限制对成员变量的不合理访问,有利于保护数据的安全性和完整性。另外,封装也有助于修改,提高代码可维护性,只要对外提供的方法不变,调用者就察觉不到内部的修改。

public class Person {
    // 私有化属性
    private int age;
    private String name;
    private char gender;

    // alt+insert快捷键提供get/set方法
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

}
public class PersonTest {
    public static void main(String[] args) {
        Person p1 = new Person();

        p1.setAge(22);
        p1.setName("Jack");
        p1.setGender('M');

        System.out.println("name = " + p1.getName() + ", Age = " + p1.getAge() + ", Gender = " + p1.getGender());
    }
}
// Name = Jack, Age = 22, Gender = M
posted @ 2025-01-03 22:26  -Miao酱-  阅读(4)  评论(0编辑  收藏  举报