类相当于男朋友,对象相当于女朋友。分类
1:数据成员,成员函数。
2:构造函数,析构函数
3:对象复制,对象赋值。
4: 对象数组,对象指针。
5:this指针。
类:如果有多条狗:狗都信息
关键子字 class Dog 类名
{
char name【20】
`属性 int age;数据成员
int type;
void speak()`; `成员函数`
void run(); 成员函数
};
目的不同,抽象出来的信息不同。(有选择)
电视机的马达不会展示个观众,被封装起来了。
用访问限定符来处理以上问题
1:public :公共的
2:protected:受保护的
3:private:私有的
例如
class TV
{
public:
char name【20】
int type;
void changevol();
void power();
private:
电阻调节
像素配色
};
解释:public表示暴露,private表示隐藏。
对象的实例化
1:类就是一个模板。2:对象就是用类设计的。子集的关系。
实例化的方式1):用栈来实现,2):用堆来实现。
栈:class TV
{ int main(void)
public: {
char name[20];//数据成员 TV*p=new TV();用指针,用new申请内存,delete释放内
int type;//数据成员 TV*q=new TV[20];存,通过对象成员的访问实现目的。
void changeVol(); //to do
delete p;
void power(); delete[]q;
};
int main(void)
{
TV tv;//前面是类的名称,后面是对象的名称。
TV tv[20];//这是定义数组名称,前面是类,后面是数组名称和有多少个元素。
return 0;
}
对象成员的访问:
int main(void)
{
TV tv;
tv.type=0;通过。访问它的成员changeVol()
tv.changeVOL();
return 0;
}
int main (void)
{
TV*=new TV();p这个指针访问type,还要删除。
P->type=0;
p_>changeVol();
delete p;
p=NULL;
return 0;
}
数组成员的访问
int main(void)
{
TV*p=new TV[5];
for(int i=0;i<5;i++)
{
p[i]->type=0;
p[i]_>changeVol();
}
delete 【】p;
p=NULL;
return 0;
}
面向对象的程序设计的特点:
1:抽象。对同一类对象的共同属性和行为进行概括,形成类。1):首先注意问题的本质及其描述,其次是实现过程或细节。2):数据抽象:描述某类对象的属性或状态。3):代码抽象:描述某类对象共有的行为特征或具有的功能。(对象相互区别的物理量)4):抽象的实现:类
2封装。3:继承。4:多态。
数据抽象:以钟表为例:数据抽象:
int hour;int minute;int escond;
代码抽象:setTime(),showTime()函数,
例题
class clock{
public:
void setTime(int newH,int newM,int news);
void showTime();
private:
int hour,minute,second;
};{}是封装,set time ,show time是外部接口;public,private是特定的访问权限。
封装
将抽象出来的数据,代码封装在一起,形成类。将抽象出来的数据成员,代码成员相结合,将他们视为一个整体。
目的:增强安全性,简化编程,使用者不必了解具体实现细节,而只需要通过外部接口,特定的访问权限,来使用类的成员。实现封装:类声明中的{},例子见上。
继承:在已有类的基础上,进行扩展形成新的类。
多态:同一名称,不同的功能实现方式
目的:达到行为的标识统一,减少程序中标识符的个数。