CopyRight@2009SWPUNCREAllRightsReserved第二章程序设计基础2011年3月等级考试辅导良好的程序设计风格结构化程序设计方法面向对象程序设计方法主导思想:清晰第一、效率第二具体要求:源程序文档化、数据说明的方法、语句的结构、输入和输出注释的写法原则基本结构优缺点应用定义优缺点基本概念(类、对象、属性、方法实例、消息、继承、多态和重载)程序设计基础(占公基5%)2.1程序设计方法和风格•良好的程序设计风格应遵循的总体原则是什么,有那些需要注意的问题?•总体原则:“清晰第一、效率第二”•源程序的文档化;•程序注释:序言性注释和功能性注释•数据说明的方法;•语句的结构;•数据的输入输出。2.2结构化程序设计的原则•结构化程序设计的基本原则是什么?•自顶向下、逐步求精、模块化、限制使用Goto语句•自顶向下、逐步求精:先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。先从最上层总目标开始设计,逐步使问题具体化。•模块化:指把一个总目标分成多个分目标,一个分目标进一步分为多个小目标,每个小目标称为一个模块结构化程序设计的基本结构•三种基本结构?•顺序结构、选择(分支)结构、循环结构S1S2BS1S2BS(a)(b)(c)S3FTBFT(d)S顺序结构选择结构循环结构结构化程序设计的特点•程序易于理解、使用和维护;•提高编程工作的效率、降低软件开发成本;•选用的控制结构只允许有一个入口和一个出口。•单入口、单出口2.3面向对象的程序设计•什么是面向对象方法?•是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。•结构化程序设计的核心是算法•面向对象的核心是对象(类)。类•什么是类?•是一组具有相同属性和相同操作的对象的集合。•在一个类中,每个对象都是类的实例,它们都可以使用类中提供的函数。•类具有属性,用数据结构来描述类的属性,•类具有操作,它是对象的行为的抽象,操作实现的过程称为方法,方法有方法名,方法体和参数。对象•什么是对象?•对象是软件系统中用来描述客观事物的一个实体。•一个对象由一组属性和对这组属性进行操作的一组服务构成的•什么是对象的属性?•属性是事物的特征,表示事物的静态特征。•什么是对象的操作?•操作指事物的功能,表示事物的动态特征(人)张红兵28绘图员人民路8号(人)李军24程序员无对象几何对象颜色位置移动(delta:矢量)选择(P:指针型):布尔型旋转(角度)人姓名:字符串年龄:整型改换工作改换地址文件文件名文件大小最近更新日期打印类名属性运算类封装•什么是封装?•对象操作的过程对外是封闭的,用户只能看到操作实施的结果•封装的主要目的是什么?•程序结构清晰,易操作,安全性高继承•什么是继承?•是软件可重用性的一种形式,新类通过这一方式,从现有的类中吸收其属性和行为,并对其进行覆盖和改写,产生新类所需的功能。•特殊类(派生类)和一般类(基类)•继承的分类•单重继承:一个子类只有一个父类。即子类只继承一个父类的数据结构和方法。•多重继承:一个子类可有多个父类。继承多个父类的数据结构和方法。形状二维形状三维形状梯形三角形长方体圆柱体形状类的继承消息•什么是消息?•消息就是向对象发出的服务请求(互相联系、协同工作等)。对象之间的联系可表示为对象间的消息传递,即对象间的通讯机制。多态与重载•什么是多态?•指同一个操作作用于不同的对象产生不同的响应。•什么是重载?•面向对象的多态•指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象,也可以发送给子类对象。面向对象三大特征:封装、继承、多态关联与链•什么是关联?•类之间的静态联系•什么是链?•链是关联的实例人员公司雇用二元关联(人员)张涛(公司)通大雇用链的例子对比结构化程序设计方法面向对象方法数据结构+算法+程序设计以对象为中心组织数据与操作数据对象的属性操作对象的服务类型与变量类与对象实例函数(过程)调用消息传送类型与子类型基类与派生类、继承构造类型整体-部分结构指针关联本章考察重点•[2006.9]下列选项中不符合良好程序设计风格的是A)源程序要文档化B)数据说明的次序要规范化C)避免滥用goto语句D)模块设计要保证高耦合、高内聚•[2006.4]下列选项中不属于结构化程序设计方法的是A)自顶向下B)逐步求精C)模块化•[2006.4]在面向对象方法中____描述的是具有相似属性与操作的一组对象。•[2005.4]在面向对象方法中,类的实例称为____。•[2008.9]面向对象方法中,不属于“对象”基本特点的是_______。A)一致性√类对象D)可复用√√B)分类性C)多态性D)标识一致性