版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计,李贻涛,2020/7/14,考核方式,编程大作业:50分,大作业答辩:15分,平时成绩:35分,根据作业完成情况和软件使用熟练度评定成绩,补考:开卷考试,基础知识选择、填空,TelQQ:747097920,2020/7/14,主要内容,面向对象程序设计基础理论,Visual Basic程序设计,我们这门课不讲建立对象模型的方法学,而是讲解一种具体的编程语言,通过编程实例加强对面向对象程序设计的认识。,UML(Unified Modeling Language)统一建模语言,2020/7/14,程序设计方法的发展,1.初期的程序设计 高运行效率、少占用
2、内存为目标,3.面向对象的程序设计 降低程序的复杂性、提高软件的开发效率和改善工作界面为目标,2.结构化程序设计 程序的可读性、可维护性为目标,程序=算法+数据结构,程序=对象+消息,课程介绍,2020/7/14,课程介绍,面向对象概念从20世纪60年代提出至今,已发展成为一种比较成熟的编程思想,并且逐步成为目前软件开发领域的主流技术。这种技术从根本上改变了人们以往设计软件的思维方式,它的基本概念是对象和类,集抽象性、封装性、继承性和多态性于一体,实现了代码重用(重用性)和代码扩充(可维护性),极大地减少了软件开发的复杂性,提高了软件开发的效率。,2020/7/14,第一章 面向对象程序设计基
3、础,1.1面向过程程序设计简介,面向过程是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。,float Circle(float r) float s; s=pi*r*r; return s; ,例如:求圆的面积,这是一个 子程序 函数 过程,2020/7/14,第一章 面向对象程序设计基础,float Circle(float r) float s; s=pi*r*r; return s; ,过程:一个具有输入输出,完成单一功能的程序块。,面向过程的程序设计工作主要围绕设计解题过程来进行 1.2.3.repea
4、t,2020/7/14,第一章 面向对象程序设计基础,float Circle(float r) float s; s=pi*r*r; return s; ,面向过程的程序定义,程序 = 数据结构 + 算法,算法与数据是分开的,2020/7/14,第一章 面向对象程序设计基础,编程:扫雪,1.获得学生总人数及应清雪总面积,2.求每个人应负责面积,3.按负责面积分块,4.安排一个同学扫雪(学号、分块号),5.重复第4步,直到所有应清雪面积安排完毕,2020/7/14,从人的角度,编程,第一章 面向对象程序设计基础,1.获得每个二级单位的学生人数及应清雪总面积,2.按比例求每个二级单位应负责面积,
5、3.按负责面积分块,4.下发任务给某二级单位,5.重复第4步,直到所有应清雪面积安排完毕,2020/7/14,第一章 面向对象程序设计基础,这就是面向对象编程的方法。,学校、各学院、班级都是对象 对象内部既含有数据,也含有程序,对象 = 数据结构 + 算法,学校.清雪 这个方法包含了上述程序,电气学院.清雪面积 这个属性为应清雪面积,电气学院.清雪 这个方法下达任务给各班,电自933.清雪 这个方法下达具体任务到个人,2020/7/14,第一章 面向对象程序设计基础,缺点2:数据不易于管理(修改维护极其困难) 在面向过程结构化系统中,数据分散于各个过程中,而对同一数据的处理可能存在于很多过程中
6、,以致对一处数据的更改甚至可能牵连整个系统。例如2000年问题,在这个例子中简单地给日期添加一些数字会对面向过程的软件产生灾难性的后果。,缺点1:除了一些通用过程(函数)外代码几乎无法重用,面向过程程序设计的缺点,2020/7/14,第一章 面向对象程序设计基础,缺点3:用户难以控制运行 用户必须输入完系统所需的所有信息,系统才会运行。而系统一旦接管下面所有的过程,如计算,输出等等,用户就失去了对系统的控制权,直到系统输出完毕。,面向过程程序设计的缺点,2020/7/14,第一章 面向对象程序设计基础,总之,面向过程可以说是人在适应机器,是人按照机器工作的方式来处理问题,面向过程编程的主要任务
7、是编写子程序。,相反,面向对象可以说是人按照自己的思维方式来处理问题了,而面向对象编程的主要任务将是编写类。,例如,关于圆的问题.,2020/7/14,第一章 面向对象程序设计基础,分析圆应该有的属性和方法, 并用UML表示;,属性:圆心坐标、半径、线型 方法:计算面积、周长、绘制,Dim C1 as new Circle,x=C1.PosX 可得到圆的初始值,C1.PosX=5 按需要给属性赋值,S=C1.getArea 得到圆面积,2020/7/14,第一章 面向对象程序设计基础,1.2 面向对象程序设计简介,面向对象(Object-Oriented,OO),面向对象是在对真实系统建模的基
8、础上的一个软件开发方法。面向对象的程序由对象和消息组成,让我们理解这些术语.,程序 = 对象 + 类 + 继承 + 消息,面向对象程序设计思想的核心就是模拟人类习惯的解题方法将对象分解,编程人员的主要任务就是实现这些具有特定功能的对象。,2020/7/14,第一章 面向对象程序设计基础,对象,对象是现实世界中实际存在的一个事物 如:一本书、一台电脑、一个人,对象具有: (1) 属性: 状态和静态特征 - 用数据表示 例如人的姓名、性别、年龄、体重. (2) 方法: 动态行为 - 用程序代码表示 例如人的行走、吃饭、睡觉.,2020/7/14,第一章 面向对象程序设计基础,类,在现实世界中,“类
9、”是对一组具有共同的属性特征和行为特征的对象的抽象。,人类,鸟类,鱼类,在面向对象程序设计中,“类”是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。,Circle类,2020/7/14,第一章 面向对象程序设计基础,实例,实例就是由某个类在赋予了一定的属性之后所生成的一个具体对象,类中包含生成对象的具体方法,例如某人和其他人区别开来,作为一个对象时 要定义其姓名、年龄、籍贯、居住地.,2020/7/14,第一章 面向对象程序设计基础,类和对象之间的关系是抽象和具体的关系。类是对多个对象进行综合抽象的结果,对象是类的一个实例。在现实中类是
10、不真正存在的,而对象是存在的。现实和计算机中都是对对象进行操作。,收银员对象,姓名:布兰尼 职衔:收银员 年龄:35 体重:60千克 操作: 收款 打印帐单,收银员类,2020/7/14,第一章 面向对象程序设计基础,封装,数据封装:将数据和处理数据的方法包装成一个整体,并将具体实现细节的数据信息和操作方法在结构上隐藏起来。,信息隐藏:将一个模块的细节部分对用户隐藏起来,用户只能通过一个受保护的接口来访问某个模块,而不能直接访问一个模块内部的细节。,对象是一个属性和方法的封装体。,2020/7/14,第一章 面向对象程序设计基础,继承,继承将客观世界中一般和特殊的关系模型化为层次结构,提供了创
11、建新类的一种方法,它的本质特征是行为共享。,对象实例: 研究生 王平,继承,类,2020/7/14,第一章 面向对象程序设计基础,消息,消息指一个对象为执行某项特定操作而向另一个对象发送的请求,消息传递机制,面向过程程序设计,面向对象程序设计,2020/7/14,第一章 面向对象程序设计基础,1.3 面向对象编程语言简介,混合型面向对象程序设计语言C+,C+是AT&T Bell实验室的Bjarne Stroustrup博士于20世纪80年代早期提出的,是迄今为止商业上最受欢迎的混合型面向对象程序设计语言。,同时支持面向对象和面向过程;C+兼容了C语言并弥补了其缺陷,保留了面向过程程序设计方法,
12、增加了面向对象的能力,支持面向对象程序设计的方法。,2020/7/14,第一章 面向对象程序设计基础,1.3 面向对象编程语言简介,C+版本:许多软件公司都为C+设计了编译系统,如AT&T、Apple、Sun、Borland和Microsoft等,国内最为流行的是Borland C+和Visual C+。,同时,许多大学和公司也在为C+编写各种不同的类库,其中Borland公司的OWL(Object Windows Library)和Microsoft公司的MFC(Microsoft Foundation Class)是优秀的代表作,尤其是MFC在国内外都得到了广泛应用。,2020/7/14,
13、第一章 面向对象程序设计基础,1.3 面向对象编程语言简介,纯面向对象程序设计语言Java,Java是由Sun公司的J.Gosling、B.Joe等人在20世纪90年代初开发出的一种纯面向对象程序设计语言,Java作为一种解释型程序设计语言,具有简单性、面向对象性、平台无关性、可移植性、安全性、动态性和健壮性,不依赖于机器结构,并且提供了并发机制,具有很高的性能,2020/7/14,第一章 面向对象程序设计基础,1.3 面向对象编程语言简介,纯面向对象程序设计语言Java,Java程序有两种类型:一种是可在Web网页上运行的Applet,称为小应用程序,它不能单独运行,必须嵌入在HTML文件中
14、,由Web浏览器执行;另一种是Application,即应用程序,可完成任何计算任务,运行时不必借助Web浏览器,可单独执行。,2020/7/14,第一章 面向对象程序设计基础,1.3 面向对象编程语言简介,可视化程序设计语言Visual Basic,VB是由Misrosoft公司在1991年推出的。VB基于BASIC语言,既继承了BASIC语言所具有的语法简单、容易学习、容易使用、数据处理能力强的特点,又引入了面向对象、事件驱动的编程机制和可视化程序设计方法,大大降低了开发Windows应用程序的难度,有效提供了应用程序开发的效率。,2020/7/14,Microsoft. NET Framework 的体系结构,第一章 面向对象程序设计基础,2020/7/14,什么是.NET?,微软公司前首席执行官的鲍尔默说:“Microsoft.NET 代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构。”,第一章 面向对象程序设计基础,2020/7/14,JAVA和.NET的对比,.NET的开发效率比JAVA要强得多。,第一章 面向对象程序设计基础,.NET还只是适用于中低端(在国内占绝大多数)应用,如果你现在要做高端的大型的应用系统(比如“全民医疗信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑装饰公司室内装修材料环保检测标准手册
- 2026凤溪创新小学面试题及答案
- 2026关于核酸面试题目及答案
- 2026锅炉员面试题及答案
- 2026呼吸急促面试题目及答案
- 我的理想:未来规划与梦想分享小学主题班会课件
- 感恩之花小学主题班会课件:心怀感激让世界更温暖
- 科技之光智启未来-小学主题班会课件
- 航空工程师技术研发创新能力绩效评定表
- 关于2026年下半年度市场拓展计划的通知函(3篇)
- 母线-电气试验(调试)作业指导书模板
- 2025江苏无锡市江阴市江南水务股份有限公司招聘8人笔试题库历年考点版附带答案详解
- 施工现场环境保护与扬尘治理措施
- 水库大坝安全培训课件
- GJB2460A-2020军用夹布橡胶软管规范
- 石料板材销售方案(3篇)
- 德阳犬只管理办法
- 新高一暑假班物理讲义+习题册-学生版
- 医疗影像委托协议书
- 2024年广东省普通高中学业水平考试化学试卷(修改+答案)版
- 校园保安服务投标方案
评论
0/150
提交评论