《面向对象基础:C++实现》学习笔记之一

1、面向对象的程序设计:对象这一概念几乎可以扩展到生活中的每个角落,对于编程更是这样;任何应用程序都可以根据实体或对象以及它所执行的任务来定义。

2、传统编程的缺点:程序难以理解、数据修改存在问题、难以实现。

3、对象:是有确定边界且与所要处理的问题相关的概念或事物;代表现实世界的实体,某个对象只有在特定应用程序中才有意义。

4、对象的用途:帮助理解现实世界、为计算机应用程序提供实践基础。

5、类:是相似对象的集合;有必要将具有相似属性和活动的对象组合成一个可以在程序中使用的单元,相似或具有共同性的对象归入到一个类中,每个类描述一组独立对象;类定义了对象的特征,只有在创建了对象之后才可以给它赋值;创建对象之后,实体的真正实例才能存在;每个对象都是它的类的一个实例;类是一个非常通用化的概念,类的结构具有通用性和灵活性。

6、属性:在类中表示对象或实体的特征;对象的特征用变量来表示,称为类的属性;同样,多边形类中所有对象都有顶点和边;类是原型,而不是实体的样本;类中每个实例或对象对于每个属性都有自己的值,但是与该类的其他实例共享相同的属性名称或操作。

7、方法:类中表示对象或实体所需的活动;对象所需的活动也必须在相应的类中用程序来表示;一个类中所有对象都执行某些共同的活动或操作;对象所需的每个活动都定义为类的一个函数,称为方法;在上述多边形类中,绘制、擦除和移动都是方法的例子,这些方法是该类的一部分;我们可以将对象看作是一个“黑盒子”,它接收并发送消息,这个黑盒子实际上包含代码(计算机指令序列)和数据(这些指令所操作的信息)。

8、抽象:是考察一个问题的某些方面的过程;在系统开发中,这意味着决定应该如何实现对象之前,先重点关注该对象是什么以及做什么;有关抽象的规范告诉我们,一个对象做什么与它怎样做无关;借助类的使用,面向对象的语言都以一种清晰的方式实现数据抽象。

9、数据抽象:是识别与应用程序相关的特定实体的属性和方法的过程;是考察有关实体的所有可用信息的过程,用来识别与应用程序相关的信息;将对象组合到类中,实际上就是对问题进行数据抽象;公有的定义对于每个类保存一次,而不是对类的每个实例各保存一次;可以一次性地为类编写方法,使得类中的所有对象都从代码重用中受益。

10、继承:是重用现有类来生成新类的一种特性;类导致继承这一概念的产生,这种划分的原则是每个子类与派生类共享公有属性;新类继承原有类的所有行为,原有类称为新类的父类或超类,还有其他的一些术语:“子类”是其“超类”的“特殊化”,反过来,“超类”是其“子类”的“一般化”。

11、超类:是有其他类继承其行为的类。

12、子类:继承其他类的属性和方法的类称为子类。

13、用黑盒子来解释面向对象编程的基本原则:作为类的使用者,永远不需要看到盒子内部;类有许多属性和方法,使用者不需要访问所有的属性和方法。

14、消息的接收者:所有与对象的通信都通过消息完成的,消息发往的对象称为消息的接收者;消息定义了对象的接口,对象可以做的所有事情都由消息接口来表示;因此我们不必知道黑盒子里面有什么即可使用。

15、信息隐藏:在保持细节的私有性的同时仅通过消息来访问对象,相应的专业术语是封装。

16、封装:是允许有选择地隐藏类中/或开放类中的属性和方法的过程;封装的优点是一个类可以有许多属性和方法,但是只有其中的一些需要开放给使用者;从编程的角度来看,由于无法看到对象的黑盒子内部,因此我们不能直接修改该对象。

17、正确地封装了一些代码后,我们可以实现两个目标:1)建起一堵墙,保护代码不会受到一些低级的小错误的意外破坏,而这些错误是每个人都可能犯错误的;2)将错误隔离在小范围内,使得它们更易于查找和修复;[ 一些代价巨大的错误就是由于有人对软件进行了改动]。

18、面向对象的开发:可以在应用程序内共享信息、在将来的项目中重用设计和代码。

19、可重用性:它是伴随着数据和操作的抽象及封装一起出现;所有面向对象的语言都试图使程序的各个部分可以更容易地进行重用和扩展;程序可以分解为可重用的对象,这些对象又可以组合起来,形成新的程序;程序员可以使用现有的类并添加附加的功能,而不用修改原来的类;有了重用代码的方式后,程序员就可以通过组装现有的程序片断,更容易地编写新程序;继承也可以重用;我们在编写新程序时不必从头开始,只需重用现有的与新程序所需行为相似的类就可以了;面向对象编程的主要技巧在于确定如何将程序划分为一组简约的类;除了加快开发速度以外,类的恰恰相当构建和重用还能大大减少代码行数,这意味着更少的缺陷和更低的维护费用。

20、多态性:多态性使得相同的函数在不同的类中有不同的行为;面向对象的语言试图使现有代码更易于修改,而不用真正更改代码,这是一种独特而且非常强大的概念,因为要在不进行更改的情况下修订内容,乍看起来似乎是不可能的,使用继承和多态性使其成为可能;多态性是指相同函数可以在不同的类中有不同的行为;现有对象保持不变,所做的任何更改只是对其进行添加;由于不用更改原始对象,程序员可以在维护和修改代码时犯较少的错误;多态性促进了封装;就用户而言,类只需要有一种方法,如何在不同情况下实现绘制方法不需要让用户看到;面向对象编程要求程序员的思维有一个大的转变,它加速了新程序的开发,而且如果运用得当,可以改善软件的可维护性、可重用性和易修订性。

21、C++简介:C++语言是C语言的超集;C++很简洁并且可以用于系统编程,它可以使用现有的C软件库,后者是我们可以在程序中重用的程序集合;在C++语言中添加的最重要的元素是类、对象和面向对象的概念。

22、发展历史:C++是由AT&T贝尔实验室的Bjarne Stroustrup开发的;它是从C语言派生而来,与C语言兼容(实际上是C语言的超集),所以现有的C语言代码可以使用到C++程序中,C++最初称为“带有类的C语言”;有两种语言对C++的设计做出了贡献,一种是C语言,它提供了基础功能,另一种是Simula67,它提供了类的概念。

23、特点:C++程序既快速又高效,这正是帮助C语言成为极其流行的编程语言的特点,但是为了保持效率而牺牲了一些灵活性;C++使用编译时绑定,这意味着程序员必须指定对象所属的具体的类,或者至少指定最通用的类;这种方法提供了很高的运行时效率,而且代码较少,但是牺牲了一些重用类的能力;C++已经变得如此流行,以至于大多数新的C语言编译器实际上是C/C++编译器;但是要充分利用面向对象的编程,必须按C++而不是C的方式来进行构思和编程;对于经验丰富的C语言程序员来说,这往往是一个问题;许多程序员认为他们在用C++进行编码,但其实他们只是使用了该语言的一小部分面向对象的功能。

24、C++的保留字:class friend virtual inline private public protected const this new delete operator。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值