数据抽象是指, 只向外界提供关键信息, 并隐藏其后台的实现细节, 即只表现必要的信息而不呈现细节.
数据抽象是一种依赖于接口和实现分离的编程 (设计) 技术.
C/C++ 的学习裙[七一二 二八四 七零五 ] , 无论你是小白还是进阶者, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
让我们举一个现实生活中的真实例子, 比如一台电视机, 您可以打开和关闭, 切换频道, 调整音量, 添加外部组件(如喇叭, 录像机, DVD 播放器), 但是您不知道它的内部实现细节, 也就是说, 您并不知道它是如何通过缆线接收信号, 如何转换信号, 并最终显示在屏幕上.
因此, 我们可以说电视把它的内部实现和外部接口分离开了, 您无需知道它的内部实现原理, 直接通过它的外部接口 (比如电源按钮, 遥控器, 声量控制器) 就可以操控电视.
现在, 让我们言归正传, 就 C++ 编程而言, C++ 类为数据抽象提供了可能. 它们向外界提供了大量用于操作对象数据的公共方法, 也就是说, 外界实际上并不清楚类的内部实现.
例如, 您的程序可以调用 sort() 函数, 而不需要知道函数中排序数据所用到的算法. 实际上, 函数排序的底层实现会因库的版本不同而有所差异, 只要接口不变, 函数调用就可以照常工作.
在 C++ 中, 我们使用类来定义我们自己的抽象数据类型(ADT). 您可以使用类 iostream 的 cout 对象来输出数据到标准输出, 如下所示:
- #include <iostream>
- using namespace std;
- int main( )
- {
- cout <<"Hello C++" <<endl;
- return 0;
- }
在这里, 您不需要理解 cout 是如何在用户的屏幕上显示文本. 您只需要知道公共接口即可, cout 的底层实现可以自由改变.
访问标签强制抽象
- #include <iostream>
- using namespace std;
- class Adder{
- public:
- // 构造函数
- Adder(int i = 0)
- {
- total = i;
- }
- // 对外的接口
- void addNum(int number)
- {
- total += number;
- }
- // 对外的接口
- int getTotal()
- {
- return total;
- };
- private:
- // 对外隐藏的数据
- int total;
- };
- int main( )
- {
- Adder a;
- a.addNum(10);
- a.addNum(20);
- a.addNum(30);
- cout << "Total" << a.getTotal() <<endl;
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3716600.html