C++中抽象和封装的区别

1. 抽象:
在面向对象编程中,抽象是获取信息的方法,所需的信息将以最简单的方式获取,即只提取所需的组件,而那些被认为不太重要的组件也不会被注意到。抽象的概念只向用户显示必要的信息。它通过隐藏程序的实现复杂性来降低程序的复杂性。
抽象的例子:

#include <iostream> using namespace std;  class YiibaiCom { private:     // private variables     int a, b, c; public:     void sum(int x, int y)     {         a = x;         b = y;         c = a + b;         cout<<"Sum of the two number is : "<<c<<endl;     } }; int main() {     YiibaiDemo s;     s.sum(5, 4);     return 0; } 

运行结果:

Sum of the two number is: 9 

在这个例子中,可以看到抽象是通过使用类来实现的。Yiibai.Com类包含私有成员 abc,它们只能由该类的成员函数访问。

2. 封装:
封装是包含信息的过程或方法。封装是一种将数据隐藏在单个实体或单元中的方法,以及一种保护信息免受外界影响的方法。该方法将数据和函数一起封装在一个类中,这也导致了数据抽象。
封装示例:

#include <iostream> using namespace std;  class EncapsulationExample { private:     // we declare a as private to hide it from outside     int a;  public:     // set() function to set the value of a     void set(int x)     {         a = x;     }      // get() function to return the value of a     int get()     {         return a;     } };  // main function int main() {     EncapsulationExample e1;      e1.set(10);      cout<<e1.get();     return 0; } 

运行结果:

10 

在这个程序中,变量 a 被设为私有,因此只能使用类中存在的方法 get()set() 来访问和操作该变量。因此可以说,变量 a 和方法 set() 以及 get() 已经绑定在一起了,只不过是封装而已。

抽象与封装的区别:

编号 抽象 封装
1 抽象是获取信息的过程或方法。 封装是包含信息的过程或方法。
2 在抽象中,问题在设计或接口级别得到解决。 在封装中,问题在实现层面得到解决。
3 抽象是隐藏不需要的信息的方法。 封装是一种将数据隐藏在单个实体或单元中的方法,以及一种保护信息免受外部影响的方法。
4 可以使用抽象类和接口来实现抽象。 封装可以通过访问修饰符来实现,即私有、受保护和公共。
5 在抽象中,使用抽象类和接口隐藏了实现的复杂性。 在封装中,使用 gettersetter 方法隐藏数据。
6 封装有助于执行抽象的对象。 导致封装的对象不需要被抽象。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264513.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论