面向对象程序设计+1.ppt_第1页
面向对象程序设计+1.ppt_第2页
面向对象程序设计+1.ppt_第3页
面向对象程序设计+1.ppt_第4页
面向对象程序设计+1.ppt_第5页
已阅读5页,还剩356页未读 继续免费阅读

下载本文档

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

文档简介

第1章面向对象编程,教学目标,比较面向对象和面向过程的编程类与对象封装和信息隐藏继承多态面向对象建模和统一建模语言,1.1比较面向对象和面向过程的编程,面向过程的编程由许多模块组成的程序组织:过程或自上而下的功能分解要解决的问题被分解成几个子问题,每个子问题被分成几个子问题。这种自上而下的功能分解一直持续到子问题足够简单,可以在相应的子过程中解决为止。问题:很难从数据处理过程中分离和重用数据,也很难开发和维护数据。面向过程编程,intmax (intnum 1,int num 2) if(num 1 num 2)return num 1;elsereturnnum2,图1-1:自上而下的功能分解和程序结构,面向对象编程,面向对象实际上是现实世界模型的自然延伸。现实世界是由物体组成的。对象通过消息(请求和服务)相互协作来完成系统的功能。类别1.2和对象。面向对象编程:将客观事物(或实体)视为具有属性和行为(或服务)的对象,并通过抽象同一类对象的公共属性(静态特征)和行为(动态特征)来形成类的概念。程序的执行表现为一组对象之间的交互通信。对象通过一个公共接口相互通信,从而完成系统功能。类是对相同对象集合的描述。例如,人类是现实世界中人(物体)的集合。我、你和他都是人类的对象。在分析了个类人对象后,得到了对象的公共数据属性和行为如下:数据属性:数字、姓名、年龄、行为:吃饭,走路,跳舞,抽象是概括特定对象、抽象这些对象的共同属性并描述它们的过程。首先注意问题的性质和描述,然后是实施过程或细节。1.2类和对象(续),定义人类类:类人类 intno字符串名称;intage人们被称为类名。不,名称、年龄被称为字段或变量,eat()被称为方法,它们都是类的成员。1.2类和对象(续)。在面向对象编程语言中,类是作为类的数据类型对象的实例。引用变量:并具有类类型的变量称为objectreference。例如,人类1=新人类(1,“张三”,20,);P1称之为对象引用变量,而纽人类(1,张三,20、)被称为人类的对象。对象:是用于描述现实世界中真实事物的实体。它是用来形成一个系统的单位。对象由一组属性和一组行为(动作或服务)组成。对象有一个固定的外部接口。一组属性和操作。对象通过一个公共接口相互通信。对象的状态对象的属性值表示它所处的状态。对象的操作用于改变对象的状态。1.3封装和信息隐藏,封装是面向对象方法的一个重要原则。它将对象的属性和操作(或服务)组合成一个独立的整体(系统单元),并尽可能隐藏对象的内部实现细节。封装有两层含义:一是将一个对象的所有属性和服务组合起来,形成一个不可分割的独立的单元类。第二,“信息隐藏”尽可能地隐藏对象的内部细节,以形成与外部世界的边界,只留下有限的外部接口将其与外部连接。1.3封装和信息隐藏(续)。在Java语言中,定义类别时,类别的成员会以大括号封装:栏位和方法。私有和公共等关键字用于控制对类成员的访问。用private修饰的成员是隐藏的,而用public修饰的成员在类外定义公共接口。类作为一种抽象数据类型,允许用户从底层实现细节中抽象出来,并在公共接口上为用户提供上层操作。这是一个抽象的意思。1.4继承继承继承:基于现有类(父类或超类)派生新类(子类)。新类可以吸收现有类的属性和行为,并扩展新的功能。在继承机制中,公共属性通常从一组类中抽象出来,放在父类中。继承支持软件代码重用,是提高软件开发效率的重要因素之一。例如,给定汽车、摩托车和卡车类,我们将它们的公共属性放在一个公共的父类中,称为车辆。Java中继承的一个例子:给定一个Window类,通过继承扩展得到一个子类MenuWin。ClassWin /Win的成员定义 ClassMenuwinextendswin /Menuwin的新成员定义,1.4继承(续)。继承分为:个单一继承,这意味着一个子类最多只能有一个父类。多重继承是一个子类,可以有两个以上的父类。由于多重继承会带来歧义,在实际应用中应尽可能多地使用单一继承。Java语言中的类只支持单一继承,而接口支持多重继承。如何设计继承和完整的继承层次是面向对象设计和编程的核心问题。继承是多态性的先决条件。单继承,在Java中,类1,类4,类2,类3,多继承,Inc .单继承和多继承示例,1.5多态性,多态性):是指在超类中定义的属性或行为,它们可以具有不同的数据类型或在被子类继承后显示不同的行为。这使得相同的属性或行为在超类及其子类中有不同的语义。1.5多态性(续),例如:定义一个几何类Shape,它具有“绘制”行为,由draw()表示。然而,不确定要画什么图形。定义形状类的一些子类,如圆形和矩形。子类中“绘图”的具体行为draw()可以重新定义为:在圆类中绘制圆;Draw()在矩形类中绘制一个矩形。定义:形状;/s作为一个引用变量,可以指向圆类或矩形类的对象。执行代码:s . draw();/s调用draw()方法,将为不同的指向S的对象绘制不同的绘图(圆形或矩形)。本节总结了面向对象方法的显著特征:封装、抽象、继承和多态性。将面向对象的设计方法应用到程序的开发工具和过程中,不仅可以加快开发速度,而且可以大大提高程序的可维护性和可扩展性,提高代码的重用率。1.6面向对象建模和统一建模语言。统一建模语言是一种流行的建模语言。UML是一种图形语言,它允许系统构造者(即软件设计者、系统工程师、程序员等)。)使用通用表示来描述系统需求和面向对象的分析和设计结果。1.6面向对象建模和统一建模语言(续)。作为一种建模语言,统一建模语言由用于表示模型的词汇表和定义如何组合单词的语法规则组成,即:统一建模语言=统一建模语言词汇表统一建模语言语法规则统一建模语言词汇表=统一建模语言对象关系模型图。是要模拟的实体或对象。事物可以是包、类、接口等。事物之间的语义关系由关系:表示。UML有4种关系,即:依赖关系、关联关系、泛化关系和实现关系。从软件体系结构出发,UML将软件模型分为四个视图:用例视图、逻辑视图、实现视图和分布视图。在本书的相关章节中,案例分析和设计的结果以图形的方式用UML表示,这使得读者对UML有一个感性的理解。本文总结和比较了面向过程编程和面向对象编程的特点。面向对象编程和设计中的关键概念:类是一组对象的描述。对象是类的特例。对象通过接口进行交互。引用变量的类型是一个类的变量,其值是对象的地址(或被称为指向对象)。封装、抽象、继承和多态性必须在以后的编程中得到反映。UML是一种面向对象的建模语言。作业,在本章的练习中,第2章Java概述和人类程序、教学目标、Java语言历史、开发和特性Java类库Java开发环境JDK下载、安装和使用Java集成开发环境Java程序类型和简单示例应用程序Java历史和开发,2.1Java历史和开发,1991年,JamesGosling负责开发分布式代码系统(Oak),该系统最初用于编程和控制家用消费电子产品(冰箱、电视机等)。)。1993年,太阳公司将其目标市场转向互联网。橡树在1994年被重新命名为爪哇。Java于1995年正式发布,立即引起了巨大的轰动。2.1Java的历史和发展,Java现在用于:大型企业应用程序的开发;增强万维网服务器的功能;动画游戏的设计包括图形图像的调用。为手机、寻呼机和移动设备等消费类设备提供应用程序。2.2Java语言特性,Java语言特性:简单、面向对象、平台无关、可移植、可解释、高性能、动态、可靠、安全、多线程、分布式处理等。Java语言的特点:1。简单,简化的系统,但功能齐全。这种风格类似于C,对于C程序员来说非常容易掌握。Java放弃了C语言中容易导致程序错误的地方,比如指针操作和内存管理。提供丰富的类库。面向对象的Java语言是一种纯面向对象的语言,程序结构:由一个以上的类组成。完全面向对象,不支持面向过程的编程技术,如C语言。用Java编写的平台无关应用程序可以在不同的软件和硬件平台上运行,无需修改。Java依靠Java虚拟机来实现平台独立性。JVM是一个抽象的机器,它附属于一个特定的操作系统。它有一组虚拟机的机器指令和自己的堆栈、寄存器组等。Java语言的特性,在JVM中,有一个Java解释器用来解释Java编译器编译的程序。编写完软件后,Java程序员通过Java编译器将Java源程序编译成JVM的字节码。任何配备了Java解释器的机器都可以运行这个程序,不管这个字节码是在哪个平台上生成的。通过JVM和JRE,它被转换成本地机器码、java程序运行环境、编译时、Java源程序、Java文件、Java代码、(。类文件、运行时、字节码加载器、字节码检查器、解释器、JIT代码生成器、硬件、网络等。准时制(JIT)、Java和传统语言之间不同的运行机制、Java语言的特性、4 .可移植性、5 .解释、6 .高性能、7 .动态,Java应用程序可以在任何配备有Java解释器和运行环境的计算机系统上运行,而不管其体系结构如何。java编译器将java源文件生成一个类文件。类,它可以由Java命令解释和执行,以将Java字节码转换为机器代码。JIT编译器。可以提高Java代码的执行速度。允许程序动态加载运行过程中需要的类。Java语言特性,8。可靠性和安全性,Java语言提供了安全性。编译器提供的安全性。字节码检查。类加载。Java是一种强类型语言;Java不支持指针,指针可以防止对内存的非法访问;Java的自动单元收集防止了动态内存分配引起的问题,如内存丢失。Java解释器在运行时检查数组和字符串访问的界限。Java提供了一种异常处理机制,使程序能够从错误状态中恢复。当Java字节码进入解释器时,它必须首先被字节码检查器检查,然后类加载器负责将类从网络加载到一个单独的内存区域,以避免应用程序之间的相互干扰和破坏。最后,客户端用户还可以限制从网络加载的类只能访问某些文件系统。Java语言特性,9。多线程,内置多线程功能,允许在一个程序中同时执行多个小任务。好处是更好的交互性和实时控制。Java提供了一个现成的类线程,只要继承这个类,就可以编写多线程程序。多线程机制使应用程序能够并行执行,同步机制确保共享数据的正确操作。通过使用多线程,程序员可以使用不同的线程来完成特定的行为,而无需采用全局事件循环机制,从而轻松实现网络上的实时交互行为。Java语言特性,10。分布式处理,支持TCP/IP协议。分布式包括:数据分布:是指数据可以分布在网络的不同主机上,操作分布:是指计算分布在不同主机上进行处理。Java支持WWW客户机/服务器计算模式,因此它支持两种分发方式。Java数据分发:Java提供了一个名为URL的对象,通过它,您可以像访问本地文件系统一样打开和访问具有相同URL地址的对象。Java操作分布Java的Java小程序可以从服务器下载到客户端,即在客户端执行一些计算,从而提高系统执行效率。2.3Java类库,也称为Java API(应用程序接口)。学习Java时,学习内容实际上分为两部分。第一部分是Java语言本身,以便编写自己的类;第二部分学习扩展Java类库的类。这本书通过例子讨论了大量Java类库的使用。2.3Java类库,Java Java中的包:为编写应用程序提供了丰富的预定义类库。这些预定义的类库根据相关类的类别进行分组。这些分组称为包。包是命名类的集合,包也可以包含其他子包。所有的Java包都被称为Java应用程序接口API。JavaAPI包分为:个核心包(以Java开始的包)和可选包(以javax开始的包)。核心包和可选包通常包含在Java开发工具包中。2.3Java类库,JDK :中的一些重要包提供了支持Java的基本类。Java.util:提供了实用方法和数据结构的类。Java . awt : javax . swing : Java . appl

温馨提示

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

评论

0/150

提交评论