面向对象基本概念
面向对象的优点
类的概念
类是一种抽象概念:比如“电脑”就是一种抽象的事物…
对象由类来定义,类是对象的模板。类规定了对象内部的属性,创建该对象的特性,以及对象在其属性上的行为。类本身并不存在,而是以对象的形式出现,因此类就是一块模板。
对象是一个动态的概念,类是静态的概念。每一个对象都存在着有别于其他对象的属性与行为,这些熟悉可以随着它自己的行为而发生动态变化。类则是源代码中存在的静态事物,是程序的一部分。运行期间,类的代码不能更改,而对象的属性和方法在执行期间可以修改,也可以执行。类本身不携带任何数据,不占用内存空间,但是却占用磁盘空间,是一个静态的概念。对象一直等到执行时才占用存储空间。
类的三大特征-(封装,继承,多态)
构造一个服装类,它的属性有:颜色,材料,重量,尺寸。行为有:穿,洗,叠。
参考代码:
class cloth
{
private:
char color[20];
char material[20];
float weight;
float size;
public:
void wear();
void wash();
void fold();
};
面向对象的本质-(封装)
类是将一组对象的数据结构和操作中相同的部分抽出来组合的集合,是对象共同的特征。因此它是对对象的抽象和泛化,是对象的模板。本节将详细讲解类的有关概念。
1.1声明类
在C++中,新的数据类型可以用class来构造。类的声明语法与C语言中的struct声明类似,只是class还包含函数声明。
class point
{
int x,y;
public:
void setpoint(int,int);
};
| point |
|--|--|
| 公有 | 属性 | int x,int y |
| 私有 | 方法 | setpoint() |
声明一个简单的student学生类。
class student
{
private:
int id;
char *name ;
float chinese ,english,math;
public:
student();//构造函数
student(int,char * ,float ,float,float);//构造函数,设置学号,姓名,三门课程成绩
~student();//析构函数
void setid(int);//析构学号
void setname(char *);
void setscore(float,float,float);//设置课程分数
float sum();
float average();//求三门课程平均分
};
增加成员chinese的访问函数。
class student
{
private:
float chinese;
public:
float getchinese()
{
return chinese;
}
};
构建属性:<数据类型><属性>