收藏 分享(赏)

第一章 程序设计与C++程序设计初步(1).ppt

上传人:hwpkd79526 文档编号:10123095 上传时间:2019-10-12 格式:PPT 页数:34 大小:201.50KB
下载 相关 举报
第一章 程序设计与C++程序设计初步(1).ppt_第1页
第1页 / 共34页
第一章 程序设计与C++程序设计初步(1).ppt_第2页
第2页 / 共34页
第一章 程序设计与C++程序设计初步(1).ppt_第3页
第3页 / 共34页
第一章 程序设计与C++程序设计初步(1).ppt_第4页
第4页 / 共34页
第一章 程序设计与C++程序设计初步(1).ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、面向对象程序设计基础主讲人:胡 青,第一章 程序设计与C+程序设计初步,1.1 计算机程序 1.1.1 算法 定义:用来解决问题的有多个步骤组成的具体过程。(p4 例1.1.1 求解最大公约数的欧几里德算法) 基本特征:由一些能够执行的操作组成可以具有多个输入和输出算法对于任何输入都应该是可终止的算法的主要操作对象是数据,1.1.2 实体许多行为也可以用算法来表示。 例: 银行账户存款(输入、输出、步骤) 例:银行账户取款(输入、输出、步骤)发现:存款、取款行为所用数据均包含账户当前余额,存款与取款行为是密切相关的。银行账户(包括账号、户名、密码、余额等状态)可完成存款、取款行为 实体,第一章

2、 程序设计与C+程序设计初步,通常一个实体应具有一个名字、一组表示该实体特征的数据以及若干作用在这些数据上的行为。实体具有数据表示了他的状态,而这些状态可有他的行为来改变。从行为出发来把握事物。(C)从实体出发把握事物 。(C+)我们通过观察与分析事物表现出来的行为来探讨事物的内在结构,掌握了事物的内在结构又可用来解释或预测事物的行为。在处理大型问题时,从实体比从行为出发更容易把握问题的复杂性。,第一章 程序设计与C+程序设计初步,113 程序 有了实体,如何用计算机解决问题? 程序即是实体在计算机中的体现。 1、数据在计算机内部的表示(通过二进制编码表示) 2、程序在计算机内部的表示(无论何

3、种计算机,各有一套基本指令系统,其中每条指令都是由二进制编码表示。)机器语言 汇编语言(二进制编码表示) 宏汇编语言(引入宏)机器语言 高级语言(与机器无关),第一章 程序设计与C+程序设计初步,汇编程序,宏汇编程序,编译程序,解释程序,114 程序设计 程序设计是编写计算机程序的活动。 完成程序设计工作必须具备四方面的知识:一是应用领域的知识;二是程序设计方法;三是程序设计语言;四是程序设计环境与工具。方法:自顶向下自底向上设计语言 实体 程序 设计环境与工具 (类库 函数库),第一章 程序设计与C+程序设计初步,两者结合,12程序设计的演变 121 早期程序设计 语言有: FORTRAN

4、(FORmula TRANslator)1954-1957 IBM公司开发 科学计算工程领域 COBOL(Common Business Oriented Language) 1959商业事物处理 ALGOL(算法语言) Basic (无固定程序设计方法时期),第一章 程序设计与C+程序设计初步,122结构化程序设计 主要技术:自顶向下、逐步求精、采用单入口/单出口的控制结构 只用三种基本控制结构(顺序、选择、循环)Pascal (人名命名,17世纪法国数学家Blaise Pascal)教育界、学术界 C (1972 贝尔实验室 DEC PDP11计算机上实现)为描述和实现UNIX操作系统提供

5、一种工作语言 七十年代末“传统C”、“经典C”,第一章 程序设计与C+程序设计初步,123面向对象程序设计面向对象程序设计建立在结构化程序设计基础上,最重要的改变是程序围绕被操作的数据来设计,而不是围绕操作本身。从程序设计方法的角度看,面向对象是一种新的程序设计范型,其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计。,第一章 程序设计与C+程序设计初步,其基本思想是:从现实世界中客观存在的事物出发来建立软件系统强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表为系统中的对象,作为系统的基本构成单位。这可

6、以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌。充分运用人类日常的思维方法强调运用人类在日常的逻辑思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装、关联等等。这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。,第一章 程序设计与C+程序设计初步,对问题域的认识(人),客观世界 (问题域),计算机,自然语言,语 言 的 鸿 沟,编程语言,语言的过渡(人),编程(人),程序的理解 和执行(机器),软件开发实际上是从问题空间向解空间映射的过程。,从认识论看面向对象语言的形成,第一章 程序设计与C+程序设计初步,计算机,自然语言,客观世

7、界 (问题域),语言的鸿沟,语言的发展鸿沟变窄,程序的指令、数据、地址,都是由二进制的“0”和“1”构成的。离机器最近,能够直接地执行,然而没有丝毫形象的意义,离人类的思维最远。,以易理解的符号表示指令、数据以及寄存器、地址等物理概念。稍稍适合人类的形象思维,但仍然相差很远。因为抽象层次太低,仍需考虑大量的机器细节。,高级语言隐蔽了机器细节,使用有形象意义的数据命名和表达式,可以联系到程序所描述的具体事物。特别是结构化编程语言更便于体现客观事物的结构和逻辑涵义,与人类的自然语言更接近,但仍有不少差距。,能比较直接地反映客观世界的本来面目,并使软件开发人员能够运用人类认识事物所采用的一般思维方法

8、来进行软件开发。,第一章 程序设计与C+程序设计初步,13 C+语言的程序结构 131C+语言程序的组成一个程序是实体的属性及行为在计算机中的表示,C+中用类(CLASS)来描述实体。类描述的是一群实体的共同结构,即这群实体都具有的属性和行为。对象 单个实体例银行帐户的共同结构在C+中用类来描述,张三帐户、李四帐户则是属于此类的二个对象,它们的户名,当前余额等属性值各不相同。又如:学生档案(类) 张三档案、李四档案(对象),第一章 程序设计与C+程序设计初步,C+语言中有个特殊的函数称为主函数,每一个程序都从主函数开始执行,由主函数去激活一个对象的行为,通过这个对象的行为,又去激活其他对象的行

9、为,众多对象共同协作,完成某一任务。132 C+程序的基本结构为显现程序的逻辑结构,段与段、句子与句子之间的空格、制表符、空行起分隔作用,但C+中大小写严格区分。/ 为注释符号C+程序=主函数,若干类例: 一个完整的C+语言程序,第一章 程序设计与C+程序设计初步,#includeusing namespace std;class ACCOUNTfloat balance; public:ACCOUNT (float amount)balance=amount;void deposit (float amount)balance=balance+amount;,第一章 程序设计与C+程序设计初

10、步,int withdraw (float amount)if(amountbalance)return 0;elsebalance=balance-amount;return 1;float get_balance( )return balance; ;,第一章 程序设计与C+程序设计初步,main( ) ACCOUNT acc1(500);ACCOUNT acc2(1500);acc1.deposit(255.5);acc2.deposit(500);acc2.withdraw(700);acc1.withdraw(700);acc2.withdraw(350);cout“帐号1的余额还有

11、”acc1.get_balance( )“元n”;cout“帐号2的余额还有”acc2.get_balance( )“元n”;return 1; ,第一章 程序设计与C+程序设计初步,133C+语言程序的退化结构 1、仅有函数没有类退化相当于C语言编写 2、仅有类没有函数退化为C+程序库,供编写其他程序时重用。C+混合型面向对象语言,因为C+语言除了类还可以包括游离于类之外的其它函数。Eiffel ,Smalltalk 程序仅由类构成,称为纯面向对象语言。,第一章 程序设计与C+程序设计初步,14 C+语言程序的运行环境不同的C+语言开发环境中,完成以上过程的具体操作方式会有较大差异。,源代码

12、,目标代码,可执行代码,编译程序,链接程序,源代码,目标代码,编译程序,库,第一章 程序设计与C+程序设计初步,15 面向对象程序设计过程,第一章 程序设计与C+程序设计初步,对象,类 属性,服务(操作) 封装 继承,一般-特殊结构, 聚合,整体-部分结构 消息 多态,面向对象的基本概念,对象标识就是对象的名字,有“外部标识”和“内部标识”之分。,对象是现实世界中某个实际存在的事物,它可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。 对象是构成世界的一个独立单位。它具有自己的静态特征和动态特征。,属性是用来描述对象静态特征的一个数据项。,服务是用来描述对象动态特征的一个操作序列。

13、,对象,属性,服务,对象标识,抽象与分类:忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,叫做抽象;把具有共同性质的事物划分为一类,得出一个抽象的概念,叫做分类。,类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,包括属性和服务两个主要部分。类的作用是用来创建对象,对象是类的一个实例。,类,一般类,特殊类,抽象,如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A叫做B的特殊类,B叫做A的一般类。,换种说法,如果类A的全部对象都是类B的对象,而且类B中存在不属于类A的对象,则A是B的特殊类,B是A的一般类。

14、以上两种定义是等价的,一般类和特殊类的定义,特殊类拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 继承意味着自动地拥有,或曰隐含地复制,继承简化了人们对事物的认识和描述,非常有益于软件复用,是OO技术提高软件开发效率的重要原因之一。,由一组具有继承关系的类所组成的结构称作一般-特殊结构。它是一个以类为结点,以继承关系为边的连通的有向图。,继承关系的语义:“is a kind of”,继承,允许一个特殊类具有一个以上一般类的继承模式称作多继承。,多继承特殊类的内部情况,在职研究生姓名 学号 班级 专业 职称 专业 在职单位 ,来自“人员”类,来自“研究生”类,来自“教职工”类,本类中显

15、示定义,多继承,把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。,封装的作用: 使对象能够集中而完整地描述并对应一个具体的事物。 体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部错误对它的“交插感染”。 对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。,封装,消息是向对象发出的服务请求。,目前在大部分面向对象的编程语言中,消息其实就是函数(或过程)调用。,在语法上,一条消息应包括消息名、入口参数和返回参数; 在语义上,一条消息应包括发送者、接收者和其它需传送的信息。,但是,函数调用只是实现消息的方式之一,上述理解只适合于顺序系统,

16、消息,一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称作聚合。,聚合刻画了现实事物之间的构成关系,聚合,由一组具有聚合关系的类所形成的结构称作整体-部分结构。,聚合关系又称整体-部分关系,它是对象实例之间的一种关系。这种关系的语义是“has a”或“is a part of”,整体部分关系,多态是指同一个命名可具有不同的语义。OO方法中,常指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为,称为继承多态。还有重载多态。,多态,从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并作为系统的基本构成单位。(对象),用对象

17、的属性表示事物的静态特征,用对象的服务(操作)表示事物的动态特征。(属性与服务),对象的属性与服务结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。(封装),对事物进行分类。把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。(分类),小结(1),通过在不同程度上运用抽象的原则可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,从而简化系统的构造过程及其文档。(继承),复杂的对象可以用简单的对象作为其构成部分。(聚合),对象之间通过消息进行通讯,以实现对象之间的动态联系。(消息),用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与服务刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系。因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射问题域。,小结(2),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报