第六章:当C++爱上面向对象

6.1从结构化设计到面向对象程序设计

6.1.1“自顶向下,逐步求精”的结构化程序结构

1.面向对象:

(1)先提出问题,然后分析问题的处理流程

(2)接着根据把一个大问题划分为几个问题,分成各个子模块,解决每个子问题,实现每个子模块。

(3)最后通过主函数按照某种次序调用这些子模块

2.程序仅有三种基本结构组成

任何复杂的程序只有三种基本结构:顺序结构、选择结构和循环结构

再组合和嵌套

3.分而治之,各个击破

分解成子模块,一个解决

4.自顶向下,逐步求精

(1):宏观角度,按照功能或者业务逻辑划分程序子模。

(2):结构化程序设计思想的不足:

在结构化设计中,数据和操作是相互分离的,如果数据的格式发生改变,相应的操作函数改写

5.改变这一设计思路

6.1.2面向对象的编程设计

1.是对结构化程序设计的继承和发展:更接近人类的思维

2.程序是对现实世界的描述,现实世界的基本单元是物体,程序中的基本单元就是对象。

3.面向对象:现实世界是由很多彼此相关并互通信息的实体---->对象组成的

分析对象:每个对象由两个部分组成:

(1):描述对象状态或属性的数据

(2):描述对象行为或功能的函数

example 老师

属性:姓名,年龄,职务

行为:备课,上课,批改作业

6.1.3面向对象的三座基石:封装、继承与多态

1.封装:

(1)某个物体是什么、能做什么,就是描述物体所必需的数据和算法。

(2)面向对象的思想中,他是通过封装机制将数据和相应的算法捆绑到一起的,以形成一个完整的,具有属性(数据)和行为(算法)的对象,避免了外界的干扰和不确定性。

(3)简单来说:对象就是封装数据和操作这些数据的算法的逻辑实体。

(4)封装机制 --> 对数据的保护

(5)在对象内部,某些算法和某些数据可以有私有的,不能被外界访问。

2.继承:

可以使得某个对象获得另外一个类型对象的属性的方法。

继承的最大魅力就在于它允许我们充分利用已经存在的类别

3.多态:

(1)不同情况下做不同形式的能力

(2)多态:就是指对象在不同情况下具有不同形式的能力

(3)多态机制具有不同内部结构的对象可以共享相同的外部接口

1)容易设置和维护

2)复用设计和代码,系统质量高

3)容易拓展

6.2类:当C++爱上面向对象

6.2.1类的声明和定义

1.面向对象思想把现实世界中的物体都封装对象,而类是所有相同类型对象的抽象,是它们总体的描述。

2.在一个类的声明中描述这类对象的属性和行为,从而用这个类描述这一类对象。

class 类名:public 基类名

{

public:

//公有成员,通常用来定义类的行为,提供接口供外部访问

protected:

//保护型成员

private:

//私有成员,通常用来定义类的属性

};

3.class 是声明类的关键词,后面是类的名字,通常用名词来描述,在后面是继承的方式和基类的名字

没有基类可以省略。

4.完成类的名字以及继承关系的定义后,就可以开始类的主体中描述这个类的属性和行为。

   类就是对多个同类型对象的抽象,通过面向对象的封装机制,可将现实世界中的物体封装成对象,这个对象就包含这个物体的属性和行为。

   变量代表某一数据,将变量引入类的声明之中成为类的成员变量,这些变量就成为对对象属性的描述。

5.三个关键词来定义类的属性和行为的访问级别

public :定义类的行为,提供公共的函数接口供外部访问
protected:在这个部分,可以定义遗传给下一代子类的属性和行为

private:可以定义这个类所所私有的属性和行为

class Teacher

{

//成员函数

//描述对象的行为

public :
 

void PrepareLesson();

//备课

//成员变量

//描述对象的属性

protected:

string m_strName;

private;

};

6.完成类的声明之后,就需要对类的行为进行具体的定义

域操作符“::”

6.2.2使用类创建对象

1.得到类的具体对象,可以用定义变量的方式将类当成一种新的数据类型来创建变量,也就是该类的对象。

类名 对象名;

类名就是定义好的类的名字,对象名就是要声明的对象的标志符:

//定义一个Teacher类型的对象MrChen

Teacher Mrchen;

得到一个Teacher类型的对象MrChen

得到对象后,就可以调用这个类提供的公有成员函数,完成这个对象的成员函数。我们使用“.”操作符来调用一个对象的成员函数,

对象名.公有成员函数;

多位老师抽象为类,类得到具体对象。

6.2.3构造函数和析构函数

1.对象有其生命周期

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值