2.封装与信息隐蔽
在C++中,可以通过对象成员属性的定义来实现对象的封装处理,即把他的部分数据和功能对外界屏蔽起来,使外界不用知道,甚至不能知道。比如一台录音机,它被看见的只是
外面的外壳,而里面的机械控制和电路板对使用者是不知道。使用者知道只是几个按键都有什么功能。
这样做有两大好处:一是大大降低人们使用对象的难度,使用者完全不用理会里面是怎样实现的。如对于录音机,使用者只需知道按下录音键后,录音机便开始录音。二是可以对知识产权进行保护,通过细致的设计,可以把想隐藏的隐藏起来,只留些接口给类的使用者,使用者无法对现有功能进行修改,也不能知道现有功能是如何实现的,从而实现信息隐蔽。对外的接口一般是函数名,这个在以后的学习中我们会详细的介绍。
3.抽象
在程序设计中,我们经常见到抽象这个词语,其实抽象的概念并不抽象,我们已经对抽象司空见惯了。比如说“人”这个词,我们骂人是会说“某某不是人”。也就是说无论张三、李四还是王五都可以称为人,人就是对张三、李四、王五的抽象。又如只要有中国国籍的人我们就能把他称为中国人,不管出生地在哪里,中国人这个词语就是通过抽象得到的。
抽象的过程就是寻找有关事物的共同点,抽象的作用就是表示同一类事物的本质。其实在语言中的其他地方我们早已体现了抽象的作用。如“int”是对所有整形数据的抽象。在面向对象的C++中,有一个最重要的抽象就是类,类是从想要的对象中抽象得到的。也就是说类是对象的抽象,而对象是类的特例。
4.继承和重用
继承和重用是C++的,也是面相对象的重要特性,它们能使面向对象程序设计在设计大型程序时,可以更加的高效。这就像是一个汽车厂想生产一款新型的汽车,一般不会从头开始设计,而是选择某一款汽车为基础,再增加一些新的功能,就研制出一款型的汽车。C++与C的不同之处有些方面也在于此。
如果在软件开发中已建立了一个名为“A”的类,又想建立一个名为“B”的类,而后者与前者基本相同,只不过是增加了一些属性或者功能(即行为)。这就是面向对象程序设计中的继承机制。举个例子,我们先设计一个 “Person” 类来表述人的特性,他的属性有姓名、年龄、性别等,如果我们还想设计一个“Student”类来表示学生的特性,我们只需在“Person”类的基础上再添加学号、班级等属性即可,这样便大大简化了程序设计的步骤。
可以看到,C++的继承机制可以方便的利用已有的分类建立一个新的分类,这样就可以重用已有软件部分甚至是一大部分,大大减少了编程的工作量。另外,我们不仅可以利用自己过去所建设的类,还可以利用别人建设的类或者是存放在类库里的类。这样便大大减少了软件的开发周期,对大型软件的开发有着重要的意义。
5.多态性
多态性在我们的日常生活中是经常见到的,比如对于考试结束这件事情,同学们则是放松去吃大餐,而老师们则是辛辛苦苦地改试卷,路旁的清洁工人则什么都不用做。像这种同一个消息发送个不同的对象,不同对象作出不同反应的现象,就是多态性。
在C++中,多态性表现在由继承而产生虽然相关但是不同的类中,这些类的对象对同一消息可能会做出不同反应。比如刚才的那个例子,学生、老师、清洁工人都继承了人的特性,但是他们对考试结束这一消息会有不同的反应。
多态性是面向对象程序设计的一个重要特性,它大大的增加了程序的灵活性。
原文地址:http://www.cnblogs.com/tiancong/p/3732003.html