版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象的程序设计讲义,作者:康金辉答疑QQ:158690747K,当今设计工具:,VB VC VF DELPHI C+BUILDER ,POWER BUILDER JAVA ASP.NET VB.NET C#.NET ASP,PHP JSP 等等 无不包含着面向对象的设计,什么是面向对象的程序设计?,Oriented Object Programming,OOP,面向对象程序设计)是一种计算机编程架构。 OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。 OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数
2、据和向其它对象发送信息。,DELPHI 设计工具,J Builder 设计工具,VC6.0 设计工具,Visual Basic 6.0的集成开发环境,VB6.0 设计工具,NETbean JAVA设计工具,JAVA 开发工具Netbean 5.5,DreamWeaverMX2004 设计工具,一、面向过程的程序设计,所谓面向过程是指从功能的角度分析问题,将待解决的问题空间分解成若干个功能模块,每个功能模块描述一个操作的具体过程。结构化程序设计方法就是面向过程的一个典型代表。,按照功能划分软件系统结构,功能,输入数据,输出数据,结构化程序设计方法的核心,自顶向下、逐步求精的开发方法 模块化的组织
3、方式 结构化的语句结构,自顶向下、逐步求精,将编写程序看成是一个逐步演化的过程。所谓自顶向下是指将分析问题的过程划分成若干个层次,每一个新的层次都是对上一个层次的细化,即步步深入,逐层细分。,模块化,将整个系统分解成若干个模块,每个模块实现特定的功能,最终的系统将由这些模块组装而成。模块之间通过接口传递信息,模块划分应尽可能达到高内聚,低偶合。,M,M1,M2,M3,M4,Mn,M31,M32,M33,分解过程,组装过程,语句结构化,顺序结构,分支结构,Y,N,A,T,Y,N,while 循环结构,do 循环结构,总结:结构化程序设计的特点:,程序设计数据结构算法 程序内容过程过程调用,二、面
4、向对象的程序设计,A.结构化设计的弱点: 审视问题域的视角与常规不同 抽象级别较低 封装性较差 可重用性较低,预备知识,B.什么是面向对象程序设计?,面向对象程序设计方法是指用面向对象的方法指导程序设计的整个过程,所谓面向对象是指以对象为中心,分析、设计及构造应用程序的机制。,最权威,Data A,子程序1 Data a,子程序2 Data b,主程序,子程序1,子程序2,Data A,Data a,Data b,程序由子程序和数据组成,面向过程的程序设计结构,对象A,对象C,面向对象的程序设计结构,程序由一个个对象构成,对象B,对象D,C.对象具有的特征,万物皆为对象 每个对象都有自己的惟一
5、标识 对象具有属性和行为 对象具有状态 对象之间依靠消息实现通信,D.面向对象程序设计的优点,实现对现实世界客体的自然描述 可控制程序的复杂性 可增强程序的模块性 可提高程序的重用性 可改善程序的可维护性,三、面向对象的基本概念,对象(object) 类(class) 消息(message) 接口(interface) 继承性(inheritance) 封装性(encapsulation) 多态性(polymorphism),要了解的内容,什么是抽象? 指从事物中,舍弃个别的、非本质的属性,抽取出共同的、本质的属性的过程,它是形成概念的必要手段。 抽象包括过程抽象和数据抽象。,预备知识,什么是
6、封装,指将现实世界中某个客体的属性与行为聚集在一个逻辑单元内部的机制。利用这种机制可以将属性信息隐藏起来,外界只能够通过提供的特定行为接口改变或获取其属性状态。,什么是对象,对象是用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻的基本单位。 为了区分属于同一个类的不同对象,每个对象都有一个惟一的标识。,表中各对象都是现实世界中一个客观实体,其特性是: 每一个对象均有一个名字; 用属性(或称状态)描述对象的某些特征; 通过一组操作来描述对象的各种行为。,特别重要,结论:对象是现实世界一个个客观实体,观察WINDOWS下窗口的命令按钮: 每个命令按钮都有一个名字,如:“确定”、“取消”;
7、 每个按钮都有一些属性,如:“长、高、颜色等”; 对每个按钮均可实现一些操作,如:“改变焦点、单击、双击、按回车键等”,什么是类?,类是一组具有相同属性特征的对象的抽象描述,是面向对象程序设计的又一个核心概念。 类是对象抽象的结果。有了类,对象就是类的具体化,是类的实例。类可以有子类,同样也可以有父类,从而构成类的层次结构。,如对象“张三”、“李四”,具有相同的一些属性、操作,将其抽取具体所描述的数据,可抽象为一个类别类:即学生类 如 “确定”、“取消”按钮等可抽象为一个类命令按钮类 如“苹果”,“桔子”,“梨”可抽象为一个水果类 各种大小形状背景颜色动作各不相同的或相同的窗口均可抽象为一个窗
8、口类,实例,类是对象的抽象 如“学生”是对张三、李四等的抽象,“命令按钮”是对确定、取消等的抽象; 对象是类的实例 如张三是“学生”的一个实例,”确定”是“命令按钮”的一个实例)。,结论,类的抽象演示,(a):先创建一些具体类,(b): 归纳出抽象类,(c): 进一步具体化,(d): 再次归纳,在实际应用中,先定义一个类, 然后再定义一个个具体对象。 微软已经做了很多类,这些类均封装在一个叫MFC得“类库”中,称之为微软基础类 MFC-Microsoft Foundation Class,最后的结论: 类是创建对象的样板,它包含对创建对象的状态描述及操作行为的说明; 对象是类的实例化(对象变量
9、、对象数组等),什么是消息?,消息是一个对象要求另一个对象实施某项操作的请求。在一条消息中,需要包含消息的接收者和要求接收者执行哪项操作的请求,而并没有说明应该怎样做,具体的操作过程由接收者自行决定。,消息的简要描述 把对象之间产生相互作用所传递的信息称做消息。,转向,消息传递是对象之间相互联系的惟一途径。发送者发送消息,接收者通过调用相应的方法响应消息,这个过程被不断地重复,使得应用程序在人的有效控制下运转起来,最终得到相应的结果。可以说,消息是驱动面向对象程序运转的源泉。,消息特征,什么是继承?,继承是类之间的一种常见关系。这种关系为共享数据和操作提供了一种良好的机制。 通过继承,一个类的
10、定义可以基于另外一个已经存在的类。 继承是面向对象程序设计方法的一个重要标志, 利用继承机制可以大大提高程序的可重用性和可扩充性。,父类,子类,当定义了一个类后,又需定义一个新类,这个新类与原来的类相比,只是增加或修改了部分属性和操作,这时可以用原来的类派生出新类,新类中只需描述自己所特有的属性和操作。,类的继承:,新类称为子类或派生类,原来的类称为基类。派生可以一直进行下去,形成一个派生树。,继承性大大简化了对问题的描述,大大提高了程序的可重用性,从而提高了程序设计、修改、扩充的效率。,也是OOP的最大特点,什么是封装性?-,对象是一个封装体,在其中封装了该对象的属性和操作。通过限制对属性和
11、操作的访问权限,可以将属性“隐藏”在对象内部,对外提供一定的接口,在对象之外只能通过接口对对象进行操作。 C+通过建立数据类型类来支持封装和数据隐藏。封装性增加了对象的独立性,从而保证了数据的可靠性。一个定义完好的类可以作为独立模块使用。,什么是多态性?,不同的类对象收到同一个消息可以产生完全不同的响应效果,这种现象叫做多态。 利用多态机制,用户可以发送一个通用的消息,而实现的细节由接收对象自行决定, 这样,同一个消息可能会导致调用不同的方法。,多态性指,同一个消息被不同对象接收时,产生不同结果,即实现同一接口,不同方法。,语文、数学、英语、政治、物理、化学、生物,计 算平均成绩,大学生,高数、英语、计算机、线性代数,消息,不同的对象,高中生,继承和多态性组合,可以生成很多相似但又独一无二的对象。继承性使得这些对象可以共享许多相似特性,而多态又使同一个操作对不同对象产生不同表现形式。这样不仅提高了程序设计的灵活性,而且减轻了分别设计的负担。,简要总结,总结:面向对象的4个特性,抽象性 封装性 继承性 多态性,#include / create a class class sample int i; public: void initial(); void display(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理专业护理质量与安全管理
- 2026年装甲CARTTRUCK CART细胞因子分泌增强功能设计
- 2026年超低功耗WiFi实现始终在线AI情境同步技术实现
- 2026年6G产业需要资本市场“制度级支持”:引导核心技术企业上市建议
- 2026年水下卡管器与机械连接器选型应用
- 特发性血小板减少性紫癜的诊治
- 家政养老护理综合实操考核
- 2026年食疗按摩调理脾胃虚弱养生讲座
- 2026年社区防火安全
- 宠物护理新媒体互动策略
- 2026年人美版三年级美术下册每课教学反思(附目录)
- 权利与义务相统一 课件- 2025-2026学年统编版道德与法治八年级下册
- 2026年温州永嘉县国有企业面向社会公开招聘工作人员12人笔试模拟试题及答案解析
- 2026年江西信息应用职业技术学院单招职业适应性测试题库有答案解析
- 2025年抚州职业技术学院单招职业技能考试试题及答案解析
- 美妆培训行业薪酬制度
- 市监局规范外卖管理制度
- 2025年度黑龙江人才周佳木斯市急需紧缺专业技术人才引进227人笔试参考试题(中国农业大学专场)附答案解析
- 2026年安徽邮电职业技术学院单招职业技能测试必刷测试卷附答案
- YY/T 0573.2-2025一次性使用无菌注射器第2部分:动力驱动注射泵用注射器
- 2025年湖北三峡职业技术学院单招(计算机)考试参考题库附答案解析
评论
0/150
提交评论