计算机软件技术基础第三章.ppt_第1页
计算机软件技术基础第三章.ppt_第2页
计算机软件技术基础第三章.ppt_第3页
计算机软件技术基础第三章.ppt_第4页
计算机软件技术基础第三章.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章面向对象的程序设计方法,1.面向对象技术2.面向对象方法中的基本概念3.什么是面向对象程序设计4.VB的面向对象方法,本章要求:,1,3.1面向对象技术,定义:面向对象技术是强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。基本特征主要有抽象性、封装性、继承性和多态性。面向对象技术是软件工程中最为流行的软件系统分析与设计的方法。VB类库中封装了大量的可视控件,并为其设计了各自的属性和方法。,2,基本特征,(1)抽象性(Abstract)就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征。从而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。例如,在设计一个学生成绩管理系统的过程中,考察学生张华这个对象时,就只关心他的班级、学号、成绩等,而忽略他的身高、体重等信息。抽象性是对事物的抽象概括描述,实现了客观世界向计算机世界的转化。将客观事物抽象成对象及类是是面向对象方法的第一步。,3,3.1面向对象技术,(2)封装性(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。封装有两个含义:一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。对象的属性值(除了公有的属性值)只能由这个对象的行为来读取和修改;二是尽可能隐蔽对象的内部细节,对外形成一道屏障,与外部的联系只能通过外部接口实现。,4,基本特征,3.1面向对象技术,(3)继承性(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而它却自动地、隐含地拥有其一般类的属性与行为。继承允许和鼓励类的重用,提供了一种明确表述共性的方法;继承下来的属性和行为是隐式的;继承是传递的。,5,基本特征,3.1面向对象技术,(4)多态性(Polymorphism)是指类中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。继承性和多态性的结合,可以生成一系列虽类似但独一无二的对象。由于多态性,针对相同的消息,不同对象可以有独特的表现方式,实现特性化的设计。,6,基本特征,3.1面向对象技术,3.2面向对象方法中的基本概念,对象类对象与类的关系消息和方法,7,对象的广义定义,什么是对象(object)?现实世界中的任何一个事物都可以看成是一个对象。,自然的实体:一个人,一辆汽车,一个教师,逻辑结构:一个银行帐号,一个学生的学籍档案,客户通信录,对象,8,3.2面向对象方法中的基本概念,对象是人们要研究的任何事物,其特性是:(1)每一个对象必须有一个名字以区别于其它对象;(2)用属性(或叫状态)来描述它的某些特征;(3)有一组操作,每一个操作决定对象的一种行为。/这是关于对象的广义定义,对象,9,对象的广义定义,3.2面向对象方法中的基本概念,对象是基本的运行实体,它既包含数据(属性),也包括作用于数据的操作(行为);一个对象把属性和行为封装成一个整体;对象是数据和对数据的操作的结合体;从程序设计者来看,对象是一个程序模块;从用户来看,对象为他们提供了所希望的行为。,对象,10,面向对象系统中的对象,3.2面向对象方法中的基本概念,人类果类鱼类类定义了一个大体上相似的对象,具有共同属性特征和行为特征。,类,11,类的概念,3.2面向对象方法中的基本概念,“类”是对具有共同属性特征和行为特征一个或多个对象的抽象描述。把一组对象的共同特性加以抽象并存储在一个类中的能力,是面向对象技术最重要的手段。,类,12,3.2面向对象方法中的基本概念,什么是类(class)?,手机类手机的基本功能是一致的。属功能相同的一类商品。类的属性:品牌,颜色、外形尺寸功能相同:拨打电话、接听电话、收发短信等。,能否照相,类,13,3.2面向对象方法中的基本概念,类的形象表示,ClassStudentintnumber;Stringname;floatscore;PublicStudent(intnumber1,Stringname1)number=number1;name=name1;PublicvoidgetScore(floatscore1)score=score1;print();,属性,操作,类,14,3.2面向对象方法中的基本概念,OOP中类的例子,类是对一组性质相同的对象的抽象描述,是对一组数据和方法的封装。对象则是类的具体化,是类的实例。可以这样定义对象:对象是类的一个实例,包括了数据和过程。,类,实例,对象=实例类,实例化,=,对象与类的关系,15,3.2面向对象方法中的基本概念,对象与类的关系,(1)消息Message,消息是要求某个对象执行其中某个功能操作的规格说明。OOP中的一条消息由消息选择器(“消息操作”或“消息名”)及若干个参数和接受消息的对象三部分组成。例如:student1.modify(score1),消息和方法,16,3.2面向对象方法中的基本概念,消息和方法,消息的例子,接受消息的对象参数student1.modify(score1);消息名,消息和方法,17,(1)消息Message,3.2面向对象方法中的基本概念,消息和方法,“方法”对应于对象的行为(能力),即它是实现对象所具有的功能操作的代码段。在VB程序中,方法即是窗体中定义的过程、函数,它是该类所能执行的操作的算法实现。通常每个类中包含多个方法(C+中称为成员函数),每个方法由方法名(函数名+参数表)和说明该成员函数的算法实现的一段代码所组成。,消息和方法,18,3.2面向对象方法中的基本概念,消息和方法,(2)方法(method),3.3什么是面向对象程序设计,3.3.1结构化程序设计方法3.3.2面向对象程序设计方法,19,结构化程序设计的基本思想,按功能划分模块,分而治之。分解系统时按照自顶向下的顺序,逐步求精。设计时使各模块间的关系尽可能简单,功能上相对独立,从而可单独验证模块的正确性。,20,3.3什么是面向对象程序设计,3.3.1结构化程序设计方法,21,结构化程序的组成,3.3什么是面向对象程序设计,3.3.1结构化程序设计方法,把数据结构和处理数据的操作过程分离为相互独立的实体。用数据表达实际问题中的信息;程序代码则实现用于处理加工这些数据的算法。简而言之,就是数据和操作代码分离。,22,结构化程序设计方法的基本特点,3.3什么是面向对象程序设计,3.3.1结构化程序设计方法,给程序员增加了负担:必须确保数据和代码匹配。当数据结构改变时,所有相关的处理过程都要进行相应的修改,可维护性低。即使要对不同的数据格式(结构和类型)作同样的处理计算,也必须编写不同名的过程程序,可重用性不好。,23,数据和操作代码分离产生的问题,3.3什么是面向对象程序设计,3.3.1结构化程序设计方法,用面向对象程序设计语言中的对象和类直接模拟现实世界中的对象,将问题空间直接映射到软件空间。便于设计出尽可能直接、自然地表示问题求解方法的软件。面向对象的这种思维方式符合人类的自然思维习惯,使我们能够在程序中自然地描述现实世界的实体和问题,增强了程序代码的可读性,有利于控制软件的复杂性。,24,3.3什么是面向对象程序设计,3.3.2面向对象程序设计方法,模块化,将一个复杂的大规模软件系统划分成几个规模较小、相对简单的模块,即分而治之。面向对象程序设计方法是按对象来划分。面向对象的软件系统由对象组成,对象之间通过消息传递互相联系。,25,3.3什么是面向对象程序设计,3.3.2面向对象程序设计方法,面向对象的软件系统的组成,26,3.3什么是面向对象程序设计,3.3.2面向对象程序设计方法,对象作为程序模块,面向对象的软件系统中每个模块都是高度独立的对象,而对象是比功能模块粒度更大的模块。对象是由数据和对数据的操作(代码)形成的一个整体。面向对象程序设计采用封装的办法,使对象的内部实现与外界隔离,实现了信息隐藏,从而提供了更理想的模块化机制,显著地减少了程序模块间的干扰和依赖性。(低耦合,高内聚),27,3.3什么是面向对象程序设计,3.3.2面向对象程序设计方法,耦合:软件结构内不同模块之间相互关联的紧密程度。对象(模块)之间的联系内聚:模块内各元素彼此结合的紧密程度。对象功能齐全,数据与操作结合紧密高内聚低耦合、强内聚弱耦合,28,耦合与内聚,3.3什么是面向对象程序设计,3.3.2面向对象程序设计方法,面向对象程序设计的优越性,重用性:有利于软件生产率的提高;符合人类的自然思维习惯,能够自然地描述现实世界的实体和问题:有利于控制软件的复杂性;更好的模块化,便于多人分工和合作开发软件;编写的代码有更好的可维护性。,29,3.3什么是面向对象程序设计,3.3.2面向对象程序设计方法,3.4VB的面向对象方法,对象的概念对象是基本的运行时的实体,如窗体、各种控件等,它既包括作用于对象的操作(方法)和对象的响应(事件)。将数据和处理这些数据的过程封装在一起。,30,3.4.1VB的面向对象设计思想,工具箱的各种控件并不是对象,而是代表了各个不同的类。通过类的实例化,可以得到真正的对象。当在窗体上画一个控件时,就将类转换为对象,即创建了一个控件对象,也简称为控件。,31,3.4VB的面向对象方法,3.4.1VB的面向对象设计思想,对象的属性、事件和方法一、属性它们是用来描述和反映对象特征的参数。对象中的数据,所有对象都有自己的属性。控件的属性决定了对象展现给用户的界面具有什么样的外观及功能。对象属性设置的方法:方法一:在设计模式下,通过属性窗口直接设置对象的属性。方法二:在程序的代码中通过赋值实现,其格式为:对象.属性=属性值eg:command1.Caption=“确定”,32,3.4VB的面向对象方法,3.4.1VB的面向对象设计思想,二、事件及事件过程事件:可被对象识别的动作。事件过程:是指在对象上发生了事件后,应用程序对这个事件所能做出的反应及处理步骤,一般形式如下:Sub对象名_事件过程名(参数列表).(事件过程代码)EndSubeg:Subcommand2_Click()end按下该键结束程序EndSub,33,3.4VB的面向对象方法,3.4.1VB的面向对象设计思想,三、方法(Method)是对象所具有的动作和行为用代码来实现,实际上是VB提供的一个已经封装好了的能用子程序。对象方法调用形式:对象.方法参数列表如省略对象,表示在当对象,一般指窗体。eg:Form1.print“欢迎您使用VisualBasic6.0世界,34,3.4VB的面向对象方法,3.4.1VB的面向对象设计思想,自定义类的设计手工设计自定义类分以下四步:(1)设计类的属性;(2)设计类的方法;(3)设计类的事件;(4)编写初始化和中断事件,35,3.4VB的面向对象方法,3.4.2VB中自定义类的设计和使用,3.4.2VB中自定义类的设计和使用,自定义类的设计手工设计自定义类分以下四步:(1)设计类的属性属性变量:用向类模块中添加变量的方法定义的一般属性例如:PublicnameAsStringPrivateageAsInteger属性过程:用向类模块中添加PropertyGET/LET/SET过程的方法定义的属性。属性过程分只读(PropertyGET)、只写(PropertyLET/SET)、读写(PropertyGET和LET/SET)属性过程三种.SET用于定义对象类型属性过程,而LET用于定义非对象类型属性过程。,36,3.4.2VB中自定义类的设计和使用,自定义类的设计手工设计自定义类分以下四步:(1)设计类的属性例如:PublicPropertyGetMyage()AsInteger读属性MyageMyage=ageEndPropertyPublicPropertyLetMyage(nAsInteger)写属性MyageIfn18Andage30ThenMsgBox(引发事件ageWarn)RaiseEventageWarnEndIfEndSub,38,3.4.2VB中自定义类的设计和使用,自定义类的设计(3)设计类的事件在VB6中,向类模块中添加自定义事件有三步:在类模块的声明部分,用PublicEvent定义一个事件,事件可以有参数。例如:OptionExplicitPublicEventageWarn()在该类模块的某一个模块中,用RaiseEvent引发该事件。例如,公用模块ageCheck引发事件ageWarn(如果属性age之值在1830范围之外则引发该事件):编写事件代码不是在该类模块中编写,而是在事件源中编写,在事件源的声明部分用WITHEVENT声明该类。,39,3.4.2VB中自定义类的设计和使用,自定义类的设计(3)设计类的事件编写事件代码:例如:使用该类的窗体为form1,则在该窗体代码中写下:PrivateWithEventsxageAsstudentPrivateSubxage_ageWarn()MsgBox(年轻人注意锻炼身体!)EndSub(4)编写类的Initalize和Terminate事件代码为该类编写初始化和中断事件。,40,3.4.2VB中自定义类的设计和使用,自定义类的使用分四步:(1)声明类变量和事件(类的实例化)(2)变量赋值(设置属性)(3)方法调用(4)释放对象,41,3.4.2VB中自定义类的设计和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论