“Java 为什么要封装(Encapsulation)”是面向对象编程里非常核心的问题。简单说:封装是为了隐藏实现细节、保护数据、降低耦合、提高可维护性。下面从几个角度解释为什么 Java 需要封装。
最直接的原因:不想让外部随意修改对象内部状态。
没有封装的例子(不好):
class User {
public int age;
}
外部可以随便写:
user.age = -100; // 逻辑上不合理,但语法允许
有封装的例子:
class User {
private int age;
public void setAge(int age) {
if (age < 0 || age > 150) {
throw new IllegalArgumentException("年龄不合法");
}
this.age = age;
}
}
✅ 封装让你在入口处控制合法性。
外部只需要知道“能做什么”,不需要知道“怎么做的”。
user.setPassword("123456");
内部可能:
这些用户都不用关心。
✅ 封装 = 接口稳定,实现可变
如果外部直接依赖你的字段:
user.age
哪天你想改成:
user.birthYear
所有用 age 的地方都会炸。
但如果是:
user.getAge()
你内部怎么改都行,外部无感知。
✅ 封装让“改内部”不影响“用的人”
Java 是面向对象语言,封装是 OOP 三大特性之一(封装、继承、多态)。
没有封装:
有封装:
通过权限控制,避免:
Java 封装的本质是:用“访问控制 + 方法”把“数据”和“行为”绑在一起,让别人用得安全、改得放心。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。