封装和抽象之间的区别
对于 OOP 初学者来说,封装和抽象之间存在非常基本的区别。他们可能会对此感到困惑。但如果你详细了解这两个主题,就会发现它们之间存在巨大差异。
抽象意味着向用户隐藏不必要的数据。用户只需要所需的功能或根据其需求的输出。例如数码相机。
亲爱的读者,每当我们使用数码相机时,我们只需单击“放大”和“缩小”按钮,相机就会放大和缩小,但我们可以感觉到镜头在移动。如果我们打开相机,我们会看到我们无法理解的复杂机制。因此,按下按钮并根据您的需求获得结果就是抽象。
封装只是将数据成员和函数组合成一个称为对象的单一实体。
如果我们再次考虑相机示例,当我们按下放大/缩小按钮时,相机内部会使用由齿轮和镜头组成的机制来放大或缩小。齿轮和镜头的组合称为封装,可帮助缩放功能顺利运行。
简单来说,我们可以说“抽象是通过封装实现的”。
或者
抽象解决设计方面的问题,而封装解决实现方面的问题。
例子
输出
区块A
-
在本次课程中,我们定义了一个抽象类。
有一个受保护变量和一个函数。
B座 -
在本节中,我们定义了一个以抽象类为基类的类。
-
具有两个公共变量和两个函数。
-
一个从基类覆盖的属性 zoomresult
-
在这个块中,我们改变了齿轮和镜头的值,以便改变_picturesize变量的大小。
C 座 -
在本次会话中,我们创建了 camerazoom 类的对象。
-
然后我们调用了 zoom 方法
-
之后,我们使用属性显示变量 _picturesize 的输出。
-
然后我们再次调用方法放大并显示变量 _picturesize 的结果。
-
在最后一部分,我们调用该方法缩小图片并检查结果。