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