一、引言
认识一个系统的过程:渐进过程
实现一个系统的过程:“瀑布型”
面向对象方法学原则
–实现系统的方法学原理与认识客观世界的过程尽可能一致
面向对象方法学思想
–客观世界是由各种对象组成,每种对象有各自的内部状态和运行规律,不同对象的相互作用就构成了各种不同的系统。设计一个系统时,
在满足需求条件下把系统设计成由一些不可变的部分组成的最小集合,
则设计是优秀的。
第一章 C++语言编程入门二、程序设计方法学
结构化程序设计方法( Structure Programming)
–结构化程序设计方法,以“过程”和“操作”为中心,可重用性差
面向对象的程序设计方法 (Object-oriented Programming)
–认识客观事物应先从“对象”入手,然后转向“过程”
“对象”和“数据结构”是相对稳定的,“过程”和“操作”
是不稳定的 。以“对象”为中心,软件的主题结构比较稳定,
思维成果的可重用性较好
面向对象语言提供了特定的语法成分保证和支持面向对象程序设计,并且提供了继承性、多态性和动态链接机制,使类和类库成为可重用的程序模块。
三、面向对象的概念
1,对象的定义
–客观世界的实体称为对象,如一个商品销售系统中顾客、商品、厂家都是对象。
–无法触及的抽象事件,如一次演出、一场球赛等。
–对象有如下特性:
有一个名字以区别于其它对象
有一个状态用来描述它的某些特征
有一组操作,每个操作决定了对象的一种功能或行为
对象的操作分为两类:自身承受的操作、施加于其它对象的操作
例如有一个人名字叫王东,性别男,身高 1.80m,体重 68kg,可以修电器,可以教计算机课,描述该对象如下:
–对象的状态:
性别:男
身高,1.80m
体重,68kg
–对象的功能:
回答身高
回答体重
回答性别
修理电器
教计算机课
–从实现机制看,对象是状态和方法的封装体
状态:对象的数据结构内容和值
方法:一系列实现步骤,由若干操作构成
总结
–“对象”是具有特殊属性(数据)和行为方式(方法)的实体,占有存储空间,具有传统语言的数据类型,给对象分配存储单元即确定了给定时刻该对象的状态,与每个对象相关的方法定义了该对象的操作面向对象程序设计方法要求语言必须具备 "抽象、封装、继承和多态性 "这几个关键要素。
比如在现实生活中,某一棵桃树可以看做是一个具体对象,一棵梨树也是一个对象,而 "树 "的形态和特征是两者共有的。而在程序中,
我们反过来为之,先把类型 抽象 出来,比如我们定义了一个类,说明哪些特征,然后可以定义一个完全符合这些特征的一个 "变量 ",
这个 变量 就是一个 对象 。所以,抽象就是站在更高一个层次来看待问题。
那 封装 就是把一组数据和与其有关的操作集合组装在一起,形成一个能动的实体,也就是对象。就象电路设计,以前是用一个个晶体管的,后来把能完成某一功能的晶体管做在一起封装起来,并只提供几只引脚,外界只能通过这些引脚而不能通过别的途径来 "访问 "
内部功能,这就成了集成电路。封装使得一个对象具备独立和明确的功能,并提供接口便于和其它对象作用,而其内部的代码和数据都是受保护的。
继承 就是一个对象可以获得另一个对象的特性的机制多态性,不同的对象可以调用相同名称的函数,却能导致完全不同的行为的现象。
C++语言不是一种纯面向对象的语言 (还用到 main()这样的全局函数 )
但是应当尽可能的把变量和函数都限制在局部的类中。 (类就是一种自定义的结构数据类型 )
源程序
.cpp
目标程序
.obj
编译器 连接器
C++库文件可执行程序,exe
C++环境基础