信息隐藏 和 封装 有什么区别?
我读过封装意味着将数据和应该对它们进行操作的过程捆绑在一起。如果是这样,下面的类是否实现了封装?
class IsThisEncapsulation {
public int age;
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
}
现在声明数据属性 age
private
实现信息隐藏?
原文由 user1720616 发布,翻译遵循 CC BY-SA 4.0 许可协议
—> 封装是一个 OOP 概念,其中对象状态(类字段)及其行为(方法)被包装在一起。 Java 使用
class
提供封装。–> 限制访问某些对象组件的机制。如果您将
age
私有,您上面的示例就是信息隐藏的情况。最初,信息/数据隐藏被认为是封装的一部分,封装的定义如下:
第二个定义的动机是,在许多 OOP 语言中,组件的隐藏不是自动的,或者可以被覆盖;因此,信息隐藏被那些喜欢第二个定义的人定义为一个单独的概念。
参考资料: 维基百科