• 数据抽象的理由就是只向外界提供关键信息,隐藏后天的实现细节,表现必要信息而不呈现细节。
  • 接口分离技术
#include <iostream>

using namespace std;


int main(){
cout<<"Hello C++"<<endl;
return 0;
}
  • 访问标签强制抽象
  • 使用访问标签来定义类的抽象接口。一个类可以包含零个或者多个访问标签
  • 使用公共标签定义的标签都可以访问该程序的所有部分,一个类型的数据抽象试图是由它的公共成员定义
  • 私有标签定义的成员无法访问使用类的代码,私有部分的实现代码隐藏了具体的实现细节
  • 数据抽象可以保护内部不受损。
  • 加强封装性,方便修改。私有的数据成员不可随意更改数据,相反实现公有类型的改变就需要检查类的代码。
#include <iostream>
using namespace std;

class Adder{
public:
Adder(int i){
this->total=i;
};
// 外部接口
void addNum(int num){
this->total+=num;
};
// 返回私有类型
int getTotal(){
return this->total;
};

private:
// 内部需要隐藏的数据
int total;
};
int main(){
Adder a = Adder(2);
// 添加
a.addNum(2);
// 添加
a.addNum(2);
a.addNum(2);
cout<<"Total is "<<a.getTotal()<<endl;
return 0;
}
  • 简而言之就是:冰箱有冰冻的作用,但是冰箱内部的器件以及实现原理是不需要别人知道的,在外的人员只需要使用冰箱的冷冻作用即可。修理人员访问冰箱内部器件,就需要去看说明书(也就是公有办法)