在 Java 中,封装(Encapsulation) 是面向对象编程(OOP)的三大特性之一(封装、继承、多态)。它主要解决以下几类问题:
在没有封装时,类的成员变量通常是 public,外部代码可以直接修改:
class Student {
public int age;
}
Student s = new Student();
s.age = -100; // 不合理,但语法允许
封装后:
class Student {
private int age;
public void setAge(int age) {
if (age > 0 && age < 150) {
this.age = age;
}
}
}
✅ 解决:
封装让外部只看到“能做什么”,而不关心“怎么做的”。
public void save() {
// 内部可能是数据库、文件、网络
}
✅ 解决:
例如:
int → long)如果使用了封装(getter / setter 或方法),只需改类内部,外部无感知。
Java 提供访问修饰符:
| 修饰符 | 可见范围 |
|---|---|
| private | 仅本类 |
| default | 同包 |
| protected | 同包 + 子类 |
| public | 任意地方 |
✅ 解决:
通过方法控制读写:
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name.trim();
}
✅ 解决:
封装 = 隐藏数据 + 控制访问 + 提供安全接口
它的根本目的是:
如果你愿意,我也可以用生活例子(如钱包、遥控器)或对比不封装的后果来进一步解释。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。