gpt4 book ai didi

java - 解释 OOP 中的封装

转载 作者:行者123 更新时间:2023-11-29 08:54:30 26 4
gpt4 key购买 nike

我是 OOP 的新手,我对封装有一些疑问。

  1. “部分”封装和“弱”封装之间的区别是什么意思? java 中的示例将对我有所帮助。

  2. 封装是指像类一样只将数据放在胶囊中,还是必须有访问修饰符?

我读到封装意味着隐藏和组合数据。

在这个例子中:

class A{ 
public int a;
public void foo(){}
}

上面的代码是封装的例子吗?如果是,那么对于外部世界就没有任何隐藏,因为 afoo 是公开的。 afoo 必须是 private 才能将此示例视为封装吗?

最佳答案

这里有一个很好的解释https://mail.mozilla.org/pipermail/es-discuss/2010-December/012334.html

基本上,如果您要实现一个 Java 库或 API,您的目标应该是强封装,这样用户就无法访问他们不应该访问的内容。

强封装意味着没有人可以访问 secret 的内部变量,因为您拥有适当的继承继承权,并且所有这些东西都是隐藏的。

你的例子是非常弱的封装,因为变量 a 是公共(public)的。如果你的类是一个 API 而 a 实际上是 credit_card_details 你就会有大麻烦了。

对于初学者,您可以将这些变量设置为私有(private)并使用 getter 和 setter 来访问它们。

不过总的来说,您需要一些抽象的东西来封装它。从 OOP 的角度来看,我唯一听到的封装指的是将现实世界的对象简单地捆绑到类中

关于java - 解释 OOP 中的封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20965037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com