Oop 信息隐藏和封装是否相互独立?

Oop 信息隐藏和封装是否相互独立?,oop,encapsulation,information-hiding,Oop,Encapsulation,Information Hiding,我知道信息隐藏和封装不一定是一回事,但从定义上看,它们似乎是同义词。这让我想知道,一个是否可以在没有另一个的情况下出现 用简单的方式,我将尝试解释以下内容: 封装是将相关事物组合成一个单元的概念 信息隐藏的概念是限制对我们在上述概念中组合在一起的成员的访问 所以如果你看,这两个概念是相似的。在这里,我们不能说这些概念相互依赖。封装是将相关项目分组的可能性。这些都是成员变量和方法 而信息隐藏则是隐藏内部状态的可能性 然而,在实践中,信息隐藏通常被视为封装的一部分。你自相矛盾。您的信息隐藏定义取决于

我知道信息隐藏和封装不一定是一回事,但从定义上看,它们似乎是同义词。这让我想知道,一个是否可以在没有另一个的情况下出现

用简单的方式,我将尝试解释以下内容:

封装是将相关事物组合成一个单元的概念

信息隐藏的概念是限制对我们在上述概念中组合在一起的成员的访问


所以如果你看,这两个概念是相似的。在这里,我们不能说这些概念相互依赖。

封装是将相关项目分组的可能性。这些都是成员变量和方法

而信息隐藏则是隐藏内部状态的可能性


然而,在实践中,信息隐藏通常被视为封装的一部分。

你自相矛盾。您的信息隐藏定义取决于已发生的封装,但您声明概念之间没有依赖关系。你不能两全其美。我们可以隐藏数据也可以不隐藏数据。所以,无论我们把什么东西组合在一起,都不应该总是隐藏起来。隐藏只取决于我们想要限制用户访问的数据类型。这就是为什么我说它们之间没有依赖性。实际上,维基百科文章中关于封装的前两句话与OOP相关,完美地回答了这个问题: