由于感觉自己对C++语言的知识点遗忘了好多,于是近期复习C++语言基础知识,重新学习一遍感觉又有好多新的收获。在复习的过程中,将自己感觉比较重要的知识点记录在本公众号中,记录自己的学习过程。
1、
面向对象的程序设计
1. 对象(object):客观世界中任何一个事物都可以看成一个对象。任何一个对象都应当具有属性(attribute)和行为(behavior)这两个要素。对象应能根据外界给的消息进行相应的操作。一个对象一般由一组属性和一组行为构成的。
创一个小群,供大家学习交流聊天
如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀。
也希望大家对学C++能够持之以恒
C++爱好群,
如果你想要学好C++最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习C++组织 可以点击组织二字,可以直达
例如:
一个班级作为一个对象时有两个要素:一是班级的静态特征,如班级所属系和专业、学生人数、所在的教室等,这种静态特征称为“属性”;二是班级的动态特征,如学习、开会、体育比赛等,这种动态特征称为“行为”。如果想从外部控制班级中学生的活动,可以从外界向班级发一个信息,一般称它为“消息”。
在C++中,每个对象都是由数据和函数(即操作代码)这两部分组成的,数据体现了“属性”,如三角形这个对象中,它的3条边长就是它的属性。函数体现了行为,是用来对数据进行操作的,以便实现某些功能,例如可以通过边长计算出三角形的面积,并且输出三角形的边长和面积。在程序中如果调用某个对象中的函数,就相对于向该对象传送一个消息(message),要求该对象实现某一种行为(功能)。
2. 封装和信息隐蔽:C++中可以对一个对象进行封装处理,把它的一部分属性和功能对外界屏蔽,也就是说从外界是看不到的,甚至是不可知的。把对象的内部实现和外部行为分隔开来。这样做的好处是大大降低了人们操作对象的复杂程度,使用对象的人完全可以不必知道对象内部的具体细节。
3. 抽象:抽象的作用是表示同一类事物的本质。抽象的过程是将有关事物的共性归纳、集中的过程。例如凡是有轮子、能滚动前进的陆地交通工具系统称为“车子”,把其中用汽油发动机驱动的抽象为“汽车”,把用马拉的抽象为“马车”。
在C++中:类是对象的抽象,而对象则是类的特例,或者说是类的具体表现形式,对象是具体的。例如一个三角形可以作为一个对象,10个不同尺寸的三角形是10个对象;这10个三角形对象有相同的属性和行为,可以将它们抽象为一种类型,称为三角形类型,也就是C++中的类(class),这10个三角形就是属于同一“类”的对象。
4. 继承和重用:如果已经建立了一个名为A的“类”,又想另外建立一个名为B的“类”,而后者与前者内容基本相同,只是在前面的基础上增加一些属性和行为,则只须在类A的基础上增加一些新的内容即可,这就是面向对象程序设计中的继承机制。采用继承的方法可以很方便地利用一个已有的类建立一个新的类,这就可以重用已有软件中的一部分甚至大部分,大大节省了编程工作量,这就是“软件重用”(software reusability)的思想。例如:已经将马建立为一个类,白马则继承马的基本特征,并增加新的特性(即颜色),马是父类或称为基类,白马是从马派生出来的,称为子类或派生类。
5. 多态性(polymorphism):由继承而产生的相关的不同的类,其对象对同一消息会做出不同的响应。也就是如果有几个相似而不完全相同的对象,有时人们要求在向它们发出同一个消息时,它们的反应执行不同的操作。例如,甲、乙、丙3个班都是高二年级,他们有基本相同的属性和行为,在同时听到上课铃声时,他们会分别走进3个教室,而不会走向同一个教室。
2、
面向对象程序设计的特点
1. 面向对象程序设计采用的思路:把数据和有关操作封装成一个对象,面向一个个的对象,每一组数据都是有特定的用途,是某种操作的对象,也就是说,一组操作调用一组数据。
2. 程序设计者的任务:一是设计所需的各种类和对象,即决定把哪些数据和操作封装在一起;二是考虑怎样向有关对象发送信息,以完成所需的任务。这时他如同一个总调度,不断地向各个对象发出命令,让这些对象活动起来,完成自己职责范围内的工作。因此,在一个大型的任务中,面向对象程序设计方法十分有效。
3、
类和对象的作用
1. 类(class):类是所有面向对象的语言的共同特征,所有面向对象的语言都提供了这种类型。C++支持面向过程的程序设计,也支持基于对象和面向对象的程序设计。基于对象就是基于类,与面向过程的程序不同,基于对象的程序是以类和对象为基础的,程序的操作是围绕对象进行的。在此基础上利用继承机制和多态性,就成为面向对象的程序设计。(有时不细分基于对象和面向对象,而把二者合称为面向对象的程序设计)
2. 对象:一组数据是与一组操作相对应的,把相关的数据和操作放在一起,形成一个整体,与外界相对应分隔。
面向对象程序设计中,常用以下公式来表述程序:
程序 = 算法 + 数据结构
3. 消息:消息的作用是对对象进行控制,程序设计的关键是设计好每一个对象,以及确定向这些对象发出的命令,使各对象完成相应的操作。
4、
面向对象的软件开发
1. 面向对象分析(object oriented analysis,OOA):面向对象的分析,要从客观存在的事物和事物之间的关系,归纳出有关的对象(包括对象的属性和行为)以及对象之间的联系,并将具有相同属性和行为的对象用一个类(class)来表示。建立一个能反映真实工作情况的需求模型。
2. 面向对象设计(object oriented design,OOD):根据面向对象分析阶段形成的需求模型,首先进行类的设计,类的设计可能包含多个层次(利用继承与派生机制);然后以这些类为基础提出程序设计的思路和方法,包括对算法的设计,在设计阶段,主要用一种通用的描述工具(如伪代码或流程图)来描述。
3. 面向对象编程(object oriented programming,OOP):根据面向对象设计的结果,用一种计算机语言把它写成程序,应当选用面向对象的计算机语言(例如C++),否则是无法实现面向对象设计的要求。
4. 面向对象测试(object oriented test,OOT):在写好程序后交给用户使用前,必须对程序进行严格的测试。测试的目的是发现程序中的错误并改正它。面向对象测试是用面向对象的方法进行测试,以类作为测试的基本单元。
5. 面向对象维护(object oriented soft maintenance,OOSM):软件在使用中会出现一些问题,或者软件商想改进软件的性能,这时就需要修改程序。因为对象的封装性,修改一个对象对其他对象影响很小。利用面向对象的方法维护程序,大大提高了软件维护的效率。
网友评论