面向对象软件开发概述_第1页
面向对象软件开发概述_第2页
面向对象软件开发概述_第3页
面向对象软件开发概述_第4页
面向对象软件开发概述_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

面向对象软件开发概述1.1面向对象问题求解的提出软件开发面临的问题理论上如何解决复杂-简化、缩短开发周期、易维护等语言方面机器语言-面向过程-面向对象面向对象的程序设计结构化程序设计模块化数据抽象信息隐藏知识表示并行处理第2页,共57页,2024年2月25日,星期天优点提高了软件的生产力(可扩充、可重用)减小了维护开销(复杂性降低、标准件使用)更接近人的思维活动面向对象方法分析(OOA

ObjectOrientedAnalysis)设计(OOD

ObjectOrientedDesigned)实现(OOP

ObjectOrientedProgramming)第3页,共57页,2024年2月25日,星期天1.2面向对象问题求解概述面向过程以具体的解题过程为研究和实现的主体面向对象以解决问题中所涉及到的各种对象为主体面向对象程序设计核心围绕几个概念抽象数据类型和类类的层次-子类继承和多态第4页,共57页,2024年2月25日,星期天对象(Object)-面向对象技术的核心对象是现实世界的实体或概念在计算机逻辑中的抽象表示一个对象包含数据结构及相关的操作例如:某台电视机,特指的某辆汽车黑盒用户只关心能做什么?如汽车的功能:代步、运输等等而不必关心具体内部原理,即如何做?面向对象的程序是由对象组成,这些对象应具有以下特征:自治性:数据结构和操作合为一体,且私有和公有分开,可以达到保护、减少干扰、降低复杂性、提高可靠性。自恰性:可以通过自身定义的操作来管理自己接口和消息机制:消息隐藏、通过接口体现功能.第5页,共57页,2024年2月25日,星期天抽象抽象的概念从特定的实体中抽取共性形成一般化概念的过程简化了的描述,强调共性,忽略一部分细节描述——说明解释——实现抽象是具有层次的,高层抽象视其低层抽象为它的一种实现是人们理解复杂现象和求解复杂问题中处理复杂性的重要工具面向对象的抽象原理数据抽象模块化信息隐藏行为共享进化确定性第6页,共57页,2024年2月25日,星期天类类的概念创建对象的样板包含外部接口和内部算法以及数据结构的形式简单化:是同种对象的集合与抽象例:电脑是一个类(手提式、台式、掌上电脑…)第7页,共57页,2024年2月25日,星期天实体与对象的关系实体——现实世界(电视机、汽车)对象——计算机世界(电视的属性和功能)对象计算机世界

类现实世界实体抽象数据类映射计算机逻辑的实现实例化抽象抽象概念世界第8页,共57页,2024年2月25日,星期天面向对象技术的一个关键的设计思想让计算机逻辑来模拟现实世界的物理存在让计算机世界向现实世界靠拢——面向对象反之让现实向计算机靠拢——面向过程最终目的接近自然的思维模式更接近于现实问题的本来面目的方法、设计缩短开发周期易于维护第9页,共57页,2024年2月25日,星期天对客观世界进行抽象的例子1自行车:数据(属性) 车架尺寸 车轮尺寸 牌子 材料名称…

操作 变速 移动 修理…第10页,共57页,2024年2月25日,星期天2窗口菜单: 数据(属性): 颜色 样式 标题 位置…

操作: 选择 增加 移动…第11页,共57页,2024年2月25日,星期天1.3对象的属性1.3.1对象的属性对象的状态(又称静态属性)对象内部所包含的各种信息,即变量。行为又称操作或方法(动态属性)其作用是设置或改变对象的状态方法(行为)和状态的关系状态是否开启所在频道行为:打开行为:改变频道以电视机为例第12页,共57页,2024年2月25日,星期天

方法将对象的内部变量(状态)包裹、封装、保护只能通过方法改变状态方法是对象与外界交互的接口面向对象的问题求解的最终目的最终形成一个广泛联系的、可理解的、可扩充的、可维护的更接近问题原形的动态对象模型系统第13页,共57页,2024年2月25日,星期天对象、实体与类关系对象:现实世界中某个具体的物理实体在计算 机逻辑中的映射和体现类:是一种抽象的数据类型,是同种对象的集合与抽象。属于类的某一个对象则被称为类的一个实例鸭子:类那只红嘴巴的鸭子:对象手表:类老王的手表:对象第14页,共57页,2024年2月25日,星期天1.3.2对象的关系包含当对象A是对象B的属性时,称对象B包含对象A。例:电视机——显像管,汽车——发动机继承当对象A是对象B的特例时,称对象A继承了对象B。例:小汽车——(小轿车、小货车、小客车…)学生——(小学生、中学生、大学生…)父——公共关系集合子——除公共以外,有属于自己的特殊属性关联当对象A的引用是对象B的属性时,称对象A、B为关联关系对象的引用:可以获取或操作该对象的途径(线索)例:汽车对象中包含厂商对象的线索(厂名、址、电话…)第15页,共57页,2024年2月25日,星期天注意:包含和继承的区别包含:是整体中不可缺少的一个部分继承:是在已有之上细化(具体化、扩充),是一般与特殊的结构关系.包含和关联的区别包含:含有实体关联:不含实体,只包含与实体相关的线索第16页,共57页,2024年2月25日,星期天1.4面向对象的软件开发过程——需求分析(需求模型:对象模型,动态行为模型,用户界面模型)——设计(概要设计,详细设计)——实现(选择语言,编码,集成,测试)第17页,共57页,2024年2月25日,星期天1.4.1面向对象的分析任务:用户需求OOA模型的设计和表达方法(五个层次)对象——类层现实世界到计算机世界(对象、类)的抽象静态属性层设计对象的状态及各对象间的约束关系服务层(方法层)定义对象和类的动态属性及对象之间的消息通信结构层定义系统中的所有对象和类之间的层次结构关系主题层划分子系统第18页,共57页,2024年2月25日,星期天1.4.2面向对象的设计OOD模型划分为四个部分问题逻辑界面管理负责整个系统的人-机界面设计任务管理负责处理并行操作之类的系统资源管理功能的工作数据管理负责设计系统与数据库的接口分为四个部分的优点技术实现上的透明性可重用性大大提高维护更容易第19页,共57页,2024年2月25日,星期天问题逻辑部分的任务对最初的OOA模型进一步细化分析、设计和验证细化分析包括对类静态数据的确定对类方法的参数、返值、功能实现的明确规定细化验证包括各对象类公式间的相容性和一致性各个类间、类内成员的访问权限的严格合理性对象类的功能是否符合用户需求详细设计原则充分利用已存在的,可获得的对象类或部件分析哪些类或哪些功能是可重用的,交专人优先开发大型项目设专人管理可重用资源,组成类库或其它可重用结构,充分、合理地利用资源第20页,共57页,2024年2月25日,星期天1.4.3面向对象的实现——编码阶段选择语言用语言编码实现详细设计阶段所得公式、图表、说明和规划等对软件系统各对象类的详尽描述将类代码模块根据类的相互关系集成(层次)按测试样例进行模块及系统测试,测试可与编码同步完成。第21页,共57页,2024年2月25日,星期天1.5面向对象程序设计的特点抽象-简化描述、抽取共性封装所有对象内部软件范围具有清晰的边界描述该对象与其它对象如何相互作用的接口受保护的内部实现继承-层次关系、创建新类的一种方法多态不同对象对同一种信息可以按照对象本身的性质加以回应动态联编-运行时真正锁定需要的对象第22页,共57页,2024年2月25日,星期天1.6面向对象程序设计方法的优点可重用性面向对象软件开发的核心思路可扩展性(快速原型法)从简单起,不断补充、延伸可管理性由于封装,便于管理第23页,共57页,2024年2月25日,星期天1.7第一章小结面向对象问题的提出和求解的基本过程基本概念对象、类、实体及其相互关系对象的属性(状态和行为)对象间的关系包含:部分-整体继承:一般-特殊关联:相关的一条线索软件工程开发方法(OOA-OOD-OOP)面向对象程序设计的特点(抽象、封装、继承、多态、动联)面向对象程序设计方法的优点(可重用、扩展、管理)第24页,共57页,2024年2月25日,星期天作业:

1、按照数据抽象原理,体现面向对象的设计要求,给出几何图形(如:点、线、多边形、圆等)的继承关系层次图。

2、给出对象计算机、对象“联想”牌计算机、对象CPU及对象计算机商家(或厂家)之间的关系。第25页,共57页,2024年2月25日,星期天一、Java的发展历史1991,Sun成立由JamesGosling领导的Green小组,开发了Oak语言;1995.1,JamesGosling和Naughton完成Oak新版与第一个基于Oak的应用程序WebRunner。OakJavaWebRunnerHotJava,支持Java的第二代浏览器1998年底,发布J2SDK。目前最新版本是JDK7JamesGosling第26页,共57页,2024年2月25日,星期天Java2平台Java2PlatformStandardEdition—J2SEJava2PlatformEnterpriseEdition—J2EEJava2PlatformMicroEdition—J2ME第27页,共57页,2024年2月25日,星期天Java开发平台第28页,共57页,2024年2月25日,星期天Java语言Java是一种编程语言。Java又是一种平台。第29页,共57页,2024年2月25日,星期天Java编程语言第30页,共57页,2024年2月25日,星期天Java平台第31页,共57页,2024年2月25日,星期天Java的特征Sun在JAVA“白皮书”中指出:

JAVA是一种“简单、面向对象、分布式、解释型、健壮、安全、体系结构中立、可移植、高性能和动态”的编程语言

极尽赞美之辞也不为过!

第32页,共57页,2024年2月25日,星期天二、Java的语法机制概述与C++一致的语法机制:(同)数据类型、表达式、程序流控制、结构化异常处理等;与C++不同的语法机制“(异)

类、接口(Interface)、程序包(Package)、

自动内存回收以及多线程。第33页,共57页,2024年2月25日,星期天Java与C++不同的语法机制

类:最重要、最基本的语法,类的定义与继承与C++类似,主要区别:

Java不允许多重继承,多重继承必须通过接口实现。

Java引进了abstract和final修饰词。带abstract的类称为抽象类,只能作为父类使用,不能直接产生实例对象。带final的类不能用作父类被继承,带final的属性在定义式必须赋初值并称为常量,带final的方法将禁止子类(Overriding)。第34页,共57页,2024年2月25日,星期天Java与C++不同的语法机制

接口

是一种抽象类,其中只能出现静态常量或抽象方法定义。

主要目的是实现多重继承功能,避免C++在多重继承语义上的复杂性。

一个JAVA类可以实现(继承)多个接口。第35页,共57页,2024年2月25日,星期天Java与C++不同的语法机制

程序包(package)

是一些相关类或接口的集合。

JAVA提供包括可重用类标准程序包,用户可自定义程序包。

通过import语句将程序包引入应用程序。第36页,共57页,2024年2月25日,星期天Java与C++不同的语法机制

自动内存回收

JAVA取消了指针类型,所有动态内存请求均通过new运算符,并且得到的不是指针而是引用。

系统进行内存回收。

多线程

依赖操作系统提供的线程管理的API:与平台绑定

语言级支持多线程:忽略操作系统多线程机制的差异,软件具有更好的可靠性和可移植性。第37页,共57页,2024年2月25日,星期天三、JAVA运行系统Java运行系统的构成

类装配器

字节码验证器

解释器

代码生成器

运行支持库Java运行环境的种类

JAVAApplication--JAVA解释器

JAVAApplet--JAVA兼容的Web浏览器第38页,共57页,2024年2月25日,星期天JAVA程序运行过程Hello.javaJavacHello.javaHello.class网络类装配器字节码验证器解释器代码生成器运行支持库本地系统编译运行第39页,共57页,2024年2月25日,星期天四、JAVA常用开发工具JDK(Sun)命令行EclipseJCreator(XINOX)NetBeans(Sun) JavaStudioCreator(Sun)JBuilder(Borland)VisualAgeforJava(IBM)第40页,共57页,2024年2月25日,星期天4.1JDK1.6的获取与安装从/javase/downloads/index.jsp下载运行JDK1.7中的安装程序改变环境变量:右键点击我的电脑->属性->高级->环境变量

PATH=%PATH%;c:\java\bin;CLASSPATH=.;c:\java\lib第41页,共57页,2024年2月25日,星期天4.1JDK安装目录结构简介1.软件安装的根目录包含版权、许可以及README文件。还包括:src.zip构成Java平台核心API的所有类的源文件的归档。2.bin目录包含JDK开发工具的可执行文件。3.lib目录开发工具使用的归档包文件。4.jre目录

Java运行时环境的根目录。其子目录\jre\bin中包含Java平台使用的工具和库的可执行文件及DLL。5.demo目录:含有资源代码的程序示例第42页,共57页,2024年2月25日,星期天4.1JDK目录结构中bin目录下主要开发工具的

可执行文件简介(1)javac:Java语言的编译器。(2)java:Java应用程序执行引擎,类名后面可带一个或多个字符串参数。(3)javadoc:API生成器,对当前类生成HTML格式的API文档。(4)appletviewer:小应用程序浏览器。(5)jar:JavaArchive文件归档工具,用它可以把类文件以及其他格式的文件进行压缩,以便于程序中引入以及网络传输等。(6)jdb:Java调试工具Debugger。第43页,共57页,2024年2月25日,星期天Java的API(ApplicationProgramInterface)Java的API文档是Java程序开发的最好帮手,从/javase/downloads/index.jsp下载;它提供了所有有关API类库的信息及链接,API文档内容主要包括:类层次结构、类、成员变量表、构造函数表、方法表、变量详细说明表及每一个变量使用目的的详细描述、构造方法的详细说明等。第44页,共57页,2024年2月25日,星期天Java程序中的类的定义的语法形式修饰符class类名[extend父类名]{type类变量1;

type类变量2;

……

修饰符type类方法1(参数列表){type局部变量;方法体

}

修饰符type类方法2(参数列表){type局部变量;方法体

}……}成员变量成员方法第45页,共57页,2024年2月25日,星期天Java应用程序举例//HelloWorldApp.java:publicclassHelloWorldApp{ publicstaticvoidmain(Stringargs[]){ System.out.println(“HelloWorld!”); }}第46页,共57页,2024年2月25日,星期天Java程序编写、编译过程

main声明--Java程序入口点格式publicstaticvoidmain(Stringargs[]){…

温馨提示

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

评论

0/150

提交评论