《实用C++》第29课 面向对象的程序设计

本文转载自:VC驿站

https://www.cctry.com/thread-289448-1-1.html

1、什么是面向过程?
咱们先来说说什么是面向过程?其实C语言就是面向过程的语言,C++兼容C语言,所以C++有一部分就是面向过程的。之前咱们给大家讲解的28课的东西主要就是面向过程的。面向过程的程序中函数是构成程序的基本单位,我要实现个功能我就新写一个函数,我要实现另外一个功能我就再新写一个函数,之后调用就行了,这就是面向过程的程序开发的基本流程。

2、什么是面向对象?
面向对象就不单单是为了实现功能而写个函数这么简单了。既然是面向对象的,也就是说我把任何东西都看做是一个对象。这里所说的对象不是北方老百姓眼中的男女朋友的对象,大家可以这么理解,这个对象就是一个物品,一个东西,一个个体。比如可以是个人,也可以是条狗,或者是一个苹果,万物都有可能,万物都是对象。我们拿狗来举例,狗是个对象,狗有什么属性呢?有品种,是哈士奇,还是金毛,是大狼狗,还是吉娃娃,等等。狗还有大小,有颜色,等等,这些都是狗的属性。狗还有一些行为动作或者可以叫做功能,比如狗可以吃东西,狗可以拉屎,狗可以跑,狗可以跳,狗可以汪汪叫,对不对?如果你是一条狗,那么所有这些属性和动作你都应该有,这样说明你才是一条狗。

所以,任何一个对象都应该有属性和行为这两个要素。一个对象就是由多个属性和多个行为构成的。
所以,面向对象的程序设计就是利用上面给大家说的想法。将这个程序涉及到的方方面面分成不同的彼此间有联系的多个对象。在C++语言中,每个对象都是由数据和函数这两个部分构成的。数据就是前面说的对象的属性,函数就是上面说的对象的行为或者功能,用来对数据进行操作的,以便实现某些功能。

例如:我要让狗对象汪汪叫,那么我就要调用其汪汪叫的行为函数,这样狗对象才能汪汪叫,不然他不会乱叫的。

3、对象的封装与信息屏蔽
可以对一个对象进行封装,换句通俗的话就是说可以对一个对象进行整理,我可以决定哪些东西可以让别人看到,哪些东西不想让别人看到。例如:狗对象有汪汪叫的功能。我只要告诉你这个狗对象有旺旺叫的功能就行,具体狗对象内部是怎么叫的,是用嘴巴叫,还是用鼻子叫你没必要知道。你想让狗对象汪汪叫,你就调用汪汪叫的这个行为函数就可以了。没必要知道内部的实现细节。这样也有利于使用,简单方便。C++类对象中的函数名就是对象的对外接口,函数的内部实现别人没必要知道。再举个例子,电视机对象,你想看电视机,只要按电源按钮把电视机打开就可以看了,具体电视机对象是怎么显示节目的图像的,怎么把有线电视的信号接收过来的你不用管。这就是对象的封装与信息屏蔽。

封装是面向对象的程序设计中的一个特点。这里面的封装性有两方面的含义:
一方面就是将这个对象相关的属性和行为封装在对象中,集成在对象中,形成一个基本单位,各个对象之间相互独立,互补干扰。另外一方面就是对象中的某些实现细节对外界屏蔽,隐藏内部实现的细节,只提供基本可用的函数接口,让外界调用。这样做也有利于数据的安全。

4、什么是抽象?
对于刚开始学习面向对象的新手来说阅读各位书记都会提到抽象这个概念,到底什么是抽象?何为抽象?
很简单,其实抽象就是归类,或者说分类。按照类别把世间万物给归类。比如,男人,女人,是两个类别。男人,女人又可以统称为人类,人类和狗可以不可以归类呢?当然也可以,都可以说是哺乳动物,对不对?这就是归类,实际上这就是抽象。抽象的作用就是表示同一类的事物本质。
C++中,类就是对象的抽象,而对象就是类的特例,即,类的具体表现形式。


5、继承与重用:
还是拿之前的狗举例子,比如之前已经抽象出了一个狗的类了,之后呢又出现了一个狗的新品种。这时候你还用完全重头来定义这个狗的新品种吗?当然不用,你直接告诉别人,第一这是一条狗,第二这条狗有什么新的特性,比如不仅会汪汪叫,还会喵喵叫。这就是在以前狗的类型的基础上进行了继承与重用。我继承了基础的狗类别的一些特性,比如狗的颜色,有四条腿,会吃东西,会拉屎,会汪汪叫等等。并且增加了我自己的新特性,会喵喵叫。也就是说不用重头来定义或者描述这个新品种的狗了。可以说站在巨人的肩膀上。比如:中国八十年代的时候没有自己的汽车,想造一台属于中国人民自己的品台汽车。那么用从头来吗,肯定不用,为什么,因为国外有现成的汽车,也都知道,汽车有四个轮子,有发动机,有变速箱等等。所以这就是基础,这就是继承与重用。继承与重用也是面向对象编程过程中的一个非常重要的特性。大大缩短了开发周期。

6、多态性:
面向对象编程中的多态性,主要指的是对同一类别的不同对象调用同一个行为或者函数的时候,表现不同。例如:张三,李四,王五,这三个人,他们都属于同一类别,都是人类,对吧?调用他们的同一行为函数:跳高,三个人都会跳高,但是每个人跳的高度肯定不同。调用他们的同一行为函数:百米跑步,三个人都会向着100米的终点跑去,但是每个人所用时间肯定不同。这就是多态性。
在C++中多态性指的是由继承而产生的不同的派生类,派生类对象对同一行为调用会做出不同的响应。
多态性也是面向对象程序设计的一个非常重要的特性,能增加程序的灵活性!

7、小作业:
本节课主要讲解的是一些概念性的东西,但是这些东西大家一定要好好理解,做到真正明白是怎么回事,因为以后会经常用到,在这里我也想通过各种举例、比喻,通过通俗易懂的方式来让大家能更容易理解这些抽象的概念。
所以本节课的作业就是深入的理解面向对象编程,理解本节课介绍的这些概念性的东西,大家加油!

第29课视频教程下载地址:

https://www.cctry.com/thread-289448-1-1.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值