第4章-面向对象程序设计(下)ppt课件(全).ppt

上传人:可****阿 文档编号:77577981 上传时间:2023-03-15 格式:PPT 页数:35 大小:242KB
返回 下载 相关 举报
第4章-面向对象程序设计(下)ppt课件(全).ppt_第1页
第1页 / 共35页
第4章-面向对象程序设计(下)ppt课件(全).ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《第4章-面向对象程序设计(下)ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第4章-面向对象程序设计(下)ppt课件(全).ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第4章章 Java面向对象程序设计面向对象程序设计(下下)第4章 面向对象程序设计(下)ppt课件(全)本章学习目标本章学习目标v了解基本类型包装器了解基本类型包装器v了解对象的比较了解对象的比较v掌握抽象类、接口及内部类的定义和使用掌握抽象类、接口及内部类的定义和使用v了解垃圾回收机制了解垃圾回收机制v掌握创建掌握创建jarjar包包第4章 面向对象程序设计(下)ppt课件(全)任务1-包装类的使用【任务内容任务内容】从命令行参数录入Person类的姓名和年龄【能力目标能力目标】v学会包装类的应用v掌握使用包装类进行类型转换v会使用包装类解决实际问题【任务分析任务分析】v按照之前学过的知识

2、,应用程序运行时,命令行提供的参数都是以字符串的形式存储在main方法的args字符串数组中,而Person类中的年龄却是以int类型存储,那么如何将字符串类型的年龄转变成int类型的年龄?4.1 包装类包装类第4章 面向对象程序设计(下)ppt课件(全)v范例:Str2IntExam.java vJava语言是一个面向对象的语言,但是Java中的基本数据类型却不是面向对象的,这在实际使用时存在很多不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类,这八个和基本数据类型对应的类统称为包装类或数据类型类。基本类型基本类型封装类封装类处理的数据类型处理的数据类型charChar

3、acter字符型数据booleanBoolean布尔型数据byteByte字节型整数数据shortShort短整型数据intInteger整型数据longLong长整型数据floatFloat单精度型浮点数据doubleDouble双精度型浮点数据第4章 面向对象程序设计(下)ppt课件(全)v对于包装类来说,主要包含两种用途:1)将字符串类型转换为基本类型)将字符串类型转换为基本类型封装类封装类返回类返回类型型方法描述方法描述用法举例用法举例BytebyteparseByte(String s)parseByte(String s,int r)byte bx=Byte.parseByte(“

4、123”);byte by=Byte.parseByte(“1011”,2)ShortshortparseShort(String s)parseShort(String s,int r)short sx=Short.parseShort(“2e”,16);IntegerintparseIntparseInt(String s)parseIntparseInt(String s,int r)String s=”673”;int ix=Integer.parseInt(s);LonglongparseLong(String s)parseLong(String s,int r)long lx=L

5、ong.parseLong(“23427”,8);FloatfloatparseFloat(String s)float fx=Float.parseFloat(“382.872”);DoubledoubleparseDouble(String s)double dx=Double.parseDouble(“82.382”);第4章 面向对象程序设计(下)ppt课件(全)2)封装基本类型,将基本类型当做对象类型用。方法如下:)封装基本类型,将基本类型当做对象类型用。方法如下:v包装类型包装类型 对象对象=new 包装类型包装类型(基本类型基本类型);v包装类型包装类型 对象对象=基本类型基本类

6、型;v包装类型包装类型 对象对象=new 包装类型包装类型(“基本类型基本类型”););例如:例如:vInteger value1=new Integer(30);vInteger value2=new Integer(“70”);vInteger value3=value1+value2;v/通过通过intValue()方法提取包装类的值方法提取包装类的值vSystem.out.println(value3.intValue();第4章 面向对象程序设计(下)ppt课件(全)任务2-比较两个对象是否相等v【任务内容任务内容】比较公司的两个员工是否相同v【能力目标能力目标】v了解两个对象之间如

7、何进行相等比较v掌握用equals比较两个对象v了解=运算符与equals比较对象相等的差异v学会运用对象相等比较解决实际问题v【任务分析任务分析】v公司雇员在程序中是以对象类型存储。然而对象是复合数据类型,那么如何才能比较两个对象是否相等。4.2 比较对象比较对象第4章 面向对象程序设计(下)ppt课件(全)v范例:Employee.java 1.“=”运算符比较对象相等 Java中,对象属于引用类型,对象实体存储在堆存储区中,对象变量位于栈存储区当中,变量中存储了对象实体在堆内存中的地址,“=”运算符只能比较对象变量中存储的地址是否相同而不能比较两个对象实体的内容是否相同。2.equals

8、()方法比较对象相等 equals方法是用来比较两个对象的内容是否相等,也就是判断两个对象间各个属性的值是否相同,equals方法是在Object中定义的。在Object类中,这个方法将判断两个对象是否具有相同的引用。如果两个对象具有相同的引用,它们一定是相等的。对于多数类来说,这种判断并没有什么意义。所以开发人员应当在自己的类当中重新实现该方法。第4章 面向对象程序设计(下)ppt课件(全)任务3-抽象类【任务内容任务内容】v设计工人模块和学生模块,两个模块都有说话方法,说话的内容要由工人或学生决定,同时这两个模块应共属同一类型人。【能力目标能力目标】v了解抽象类的概念v掌握抽象类的定义v学

9、会运用抽象类解决实际问题【任务分析任务分析】v该案例需要设计两个模块,即工人模块和学生模块,这两个模块既有相似之处,也有不同之处,为了最大限度的实现代码复最大限度的实现代码复用用,需要设计一个公共父类,包含有两个模块的公共方法,而两个模块只需要实现各自不同的行为即可。然而两个模块均有一公共方法,即说话的方法say(),需要在父类中定义,但具体说话内容两个模块却各有不同。现在引入一个问题,如果say()方法定义于父类,父类say()方法具体实现就没有了意义。4.3 抽象类与接口抽象类与接口第4章 面向对象程序设计(下)ppt课件(全)v范例:AbstractClassExam.javav抽象类:

10、就是不能使用new关键字进行实例化的类,即没有具体实例对象的类。抽象类通常不具备实际功能,不能创建对象,只作为专门用来派生其他子类的基类。定义抽象类的目的是为子类提供公共信息与接口。v抽象方法:是一种不完整的方法,它只包含有方法声明,而无方法体的定义,因而抽象方法是只有方法原型而无功能实现的一种行为规范,用来为所在类的子类声明方法的接口标准。第4章 面向对象程序设计(下)ppt课件(全)当声明类为抽象类时,需要在这个类前加修饰abstract抽象类通常包含若干个(可为零个)抽象方法;但不能在非抽象类中声明抽象方法抽象类不能创建对象,创建对象的工作由抽象类派生的非抽象子类来实现33343132抽

11、象类可以包含非抽象类所能包含的任何元素,这些要素包含具体的属性、非抽象方法以及多个重载的构造方法关于抽象类的说明第4章 面向对象程序设计(下)ppt课件(全)抽象类中不可包含抽象构造方法或抽象静态方法抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类若一个类中包含了至少一个抽象方法,则该类必须被声明为抽象类;但声明为抽象类的类不一定要包含抽象方法抽象类必须被子类继承,并由子类实现它的所有抽象方法没有所谓的最终抽象类,即抽象类不能再用final修饰类声明3536373839关于抽象类的说明(续)第4章 面向对象程序设计(下)ppt课件(全)不能创建abstract类的实例。然而可以创建一个引用

12、型变量,其类型为一个抽象类,并让它指向非抽象子类的一个实例抽象类中不能定义private类型的成员变量和成员方法若一个子类继承了一个抽象类,该子类没有实现抽象类中定义的每一个抽象方法,则该类仍然为抽象类,必须在它的类定义语句中加上abstract抽象修饰符。直到某个子类实现了它所有祖先类声明的抽象方法,该类才不再是抽象类,才能够生成实例对象310311312关于抽象类的说明(续)第4章 面向对象程序设计(下)ppt课件(全)抽象类的意义抽象类的意义抽象类的意义抽象类的意义 3533343132抽象类实现自然界的抽象概念,体现数据抽象的思想,是实现程序多态性的一种手段抽象类是类层次中较高层次的概

13、括,抽象类能让其子类继承它的抽象化的特征抽象类从更高级别上描述概念性的内容,抽象类中可以包括被其所有子类共享的公共属性与公共行为,有利于对所要解决问题的概念层次关系的组织与设计抽象类提供了可由其子类共享的一般形式,能够更好地统一用户接口抽象类是其所有子类公共属性的集合,可以充分利用这些公共属性来提高程序开发和维护的效率 AbstractClassDemo.java第4章 面向对象程序设计(下)ppt课件(全)任务4-接口【任务内容任务内容】v设计一块电脑主板支持各种PCI设备扩展卡【能力目标能力目标】v了解接口的作用v掌握接口的定义v学会运用接口解决实际问题【任务分析任务分析】v当主板厂商设计

14、一块电脑主板时需要考虑到如何让主板支持各种各样的扩展卡来增强电脑的功能,如显卡、打印卡、声卡、网卡等等。那么厂商是如何设计电脑主板的?4.3 抽象类与接口抽象类与接口第4章 面向对象程序设计(下)ppt课件(全)v范例:Computer.javavJava编程语言中禁止多继承属性,但可以通过接口来帮助类扩展方法。接口中可以定义大量的常量和方法,但其中的方法只是一种签名,没有具体的实现。第4章 面向对象程序设计(下)ppt课件(全)接口的定义接口的定义接口的定义接口的定义v定义接口要使用定义接口要使用interface关键字。接口的定义包关键字。接口的定义包括接口头部声明与接口体定义两部分。括接

15、口头部声明与接口体定义两部分。接口定义的格式为:接口定义的格式为:/接口头部声明v接口修饰符 interface extends 第4章 面向对象程序设计(下)ppt课件(全)接口的定义接口的定义接口的定义接口的定义(续)(续)/接口体定义v/常量数据成员声明vpublic static final =;vv/抽象方法声明vpublic abstract native ()throws;vv第4章 面向对象程序设计(下)ppt课件(全)v修饰符 class implements vv。/类的成员要素定义v 接口的实现接口的实现接口的实现接口的实现第4章 面向对象程序设计(下)ppt课件(全)接

16、口的实现接口的实现接口的实现接口的实现33343132实现接口的声明位置要在类定义的头部声明中,implements关键字表明一个类要实现的接口列表 一个类可以实现一个接口,也可同时实现多个接口,对于包含多个接口的接口名列表,各接口名字之间用逗号分开实现接口的类可以使用接口中定义的所有常量 如果实现接口的类是抽象类,它可以不实现接口中定义的所有抽象方法第4章 面向对象程序设计(下)ppt课件(全)接口的实现接口的实现接口的实现接口的实现(续)(续)35363738如果实现接口的类不是抽象类,则在类体中必须实现接口的所有抽象方法,为所有抽象方法定义方法体类在实现接口的抽象方法时,必须使用完全一致

17、的方法原型 接口的抽象方法的访问修饰符只能为public,这就决定了实现接口的类在实现接口方法时,必须显式地使用public修饰符,而不能使用其他限制更为严格的访问修饰符(如protected等),否则将被系统警告为缩小了接口定义方法的访问控制范围子类可以直接继承使用接口基类中的各种方法,并能够超越(抑制)或重载它们 第4章 面向对象程序设计(下)ppt课件(全)接口类型与接口变量接口类型与接口变量接口类型与接口变量接口类型与接口变量v接口可以作为一种引用数据类型来使用接口可以作为一种引用数据类型来使用,称这种引用数据类型为接口类型。可以定义接口类型的引用变量,该引用变量被称为接口变量。接口变

18、量可以用作方法的形参,也可以作为全局变量或局部变量来使用。Java中,还可以声明接口类型的数组。vJava中,允许用接口变量来引用实现接口的类对象或子类对象。例:InterfaceDemo.java 第4章 面向对象程序设计(下)ppt课件(全)接口与抽象类的区别与联系接口与抽象类的区别与联系接口与抽象类的区别与联系接口与抽象类的区别与联系 第4章 面向对象程序设计(下)ppt课件(全)任务5-内部类应用【任务内容任务内容】设计一个集合类,可以注册元素删除、添加事件【能力目标能力目标】v了解内部类v掌握内部类的语法及应用v学会用内部类解决实际问题【任务分析任务分析】本案例要求设计一个用于存储O

19、bject类型对象的集合,并且在集合上删除和增加元素时触发添加和删除操作的事件。事件处理器由用户动态添加和删除,且事件处理器的类型已经在集合内部定义好,用户只需要继承该处理器从而设计出符合实际需求的事件处理器。4.4 内部类内部类第4章 面向对象程序设计(下)ppt课件(全)v范例:InnerClassExam.javav内部类就是把一个类的声明放在另外一个类的内部,作为其成员存在。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制在内部的类的可视性。内部类可以任意访问所在类内部的成员而不受访问限定的影响。v类内部的类可以是静态的,也可以是非静态的:第4章 面向对象程

20、序设计(下)ppt课件(全)v静态内部类定义语法如下:vclass 外部类v类成员vpublic static class 内部类v内部类成员vvv静态内部类实例化对象的语法:外部类.内部类 内部类对象=new 外部类.内部类();第4章 面向对象程序设计(下)ppt课件(全)v静态静态内部类定义有如下约束:v静态成员类不能与外部类重名v不能直接访问外部类的实例字段和实例方法v不能定义于外部类的某个函数中第4章 面向对象程序设计(下)ppt课件(全)v非静态内部类定义语法如下:vclass 外部类v类成员vpublic class 内部类v内部类成员vv v外部类 外部类对象=new 外部类(

21、);v外部类.内部类 内部类对象=外部类对象.new 内部类();第4章 面向对象程序设计(下)ppt课件(全)v非静态内部类定义有如下约束:1)成员类不能与外部类重名 2)不能在成员类中定义static字段、方法和类(static final形式的常量定义除外)。3)成员类不能是接口第4章 面向对象程序设计(下)ppt课件(全)任务6-垃圾回收【任务内容任务内容】配置文件类对象在销毁时关闭文件读写流【能力目标能力目标】了解垃圾回收机制【任务分析任务分析】v许多大型应用程序的运行特性都需要靠配置文件进行配置,系统中往往会存在一个专门解析配置文件的类,该类或许会产生一个文件IO流与配置文件绑定,

22、在配置类对象销毁时,同时也应当关闭与配置文件绑定的IO流。那么,何时断开这种IO绑定是一个比较难以抉择的问题。4.5 对象的垃圾回收机制对象的垃圾回收机制第4章 面向对象程序设计(下)ppt课件(全)v范例:ObjectGCExam.java vGC即垃圾回收机制是指JVM用于释放那些不再使用的对象所占用的内存。Java语言并不要求JVM有GC,也没有规定GC如何工作。不过常用的JVM都有GC,而且大多数GC都使用类似的算法管理内存和执行收集操作。v 第4章 面向对象程序设计(下)ppt课件(全)任务7-用jar文件发布应用程序【任务内容任务内容】将项目1中的案例应用程序打包成可运行jar包【

23、能力目标能力目标】v了解Jar打包工具的使用v了解如何发布Java应用程序v了解如何运行Jar程序【任务分析任务分析】vjava应用程序中的每一个类都会产生一个class文件,当程序的规模非常庞大时,类文件数量是相当多的。然而如何便捷的管理和发布这些类文件是一件头疼的事情。vJavaSDK中提供了专门用于打包java程序类文件的工具jar应用程序。Jar应用程序可以将所有类文件和相关资源打包成一个以.jar结尾的单一文件,便于发布和传播java程序。Jar命令也可打包具备可执行能力的jar包。我们可以用jar命令将前几节编写的程 4.6 使用使用jar文件文件第4章 面向对象程序设计(下)pp

24、t课件(全)1.将所有的class文件和相关资源文件统一放在指定文件夹CMyApp下vc:MyAppPerson.classvc:MyAppStr2IntExam.class2.打开cmd命令行切换至MyApp目录下vc:cd MyAppvc:MyApp3.运行jar命令将程序打包成Str2IntExam.jarvc:MyApp jar cvfe Str2IntExam.jar Str2IntExam *.class4.运行Str2IntExam.jar 应用程序vc:MyApp java jar Str2IntExam.jar Andy 26第4章 面向对象程序设计(下)ppt课件(全)vJ

25、ar命令格式如下:jar ctxu vfm0M jar-file manifest-file entry-point-C dir files vctxu为命令选项,必选其一。各选项含义如下:-c创建新的归档文件-t列出归档目录-x从档案中提取指定(或所有)文件-u更新现有的归档文件vvfm0Me为可选项,各选项含义如下:-v在标准输出中打印详细清单-f指定jar文件名-m 包含指定清单文件(manifest)中的清单信息-e为jar文件中包装的独立程序指定应用程序入口-0仅存储,不使用压缩-M不创建清单文件(manifest)第4章 面向对象程序设计(下)ppt课件(全)上 机1.编写一个集合类,可以实现元素的添加、删除、插入、查找操作,并且该集合中不能添加相同的元素。2.编写一个将字符串解析为整 型的程序,例如:将”0 x3FWorld”解析为63,将”044Hello”解析为36,将”1101ADM”解析为13,将”365FS33”解析为365。第4章 面向对象程序设计(下)ppt课件(全)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁