




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第四章类和对象,.,2,教学目标,理解数据抽象和数据隐藏创建类能够创建和使用对象能够控制对实例变量和方法的访问方法的重载构造函数的使用理解this引用的用法理解Java的垃圾收集机制static方法和域的使用类的组合包的创建和使用,.,3,4.1面向对象程序设计的思想,4.1.1OOP思想4.1.2用类实现抽象数据类型:时钟类4.1.3类成员:构造函数、方法和域,.,4,4.1.1OOP思想,面向对象编程技术将数据及对数据的操作封装在一起而形成了类,类是描述相同类型的对象集合。面向对象编程(object-orientedprogramming,OOP)就是定义这些类。类作为抽象的数据类型用于创建类的对象。程序的执行,表现为一组对象之间的交互通信。对象之间通过公共接口进行通信,从而完成系统功能。对象的公共接口是该对象的应用程序编程接口(ApplicationProgrammingInterface,API),把对象的内部详细信息隐藏起来,使得对象变得抽象,将这种技术称为数据的抽象化。Java语言是完全面向对象的语言,程序的结构由一个以上的类组成。所有的过程都被封装起来,并将它们称之为方法。,.,5,4.1.2用类实现抽象数据类型:时钟类,类作为一种抽象的数据类型,封装了对象的数据属性和动态行为,被用来定义类的对象。下面我们将通过一个具体的实例来理解什么是类,如何定义类、创建对象和使用对象。时钟类的设计:(1)数据属性:时(inthour);分(intminute);秒(intsecond)。(2)行为:设置时间setTime();显示时间toUniversalString()、toStandardString();走时(暂时不考虑);,.,6,4.1.2用类实现抽象数据类型:时钟类(续),例4-1时钟类的实现。该例子包含两个文件Time1.java和TimeTest1.java。Time1.java是用于定义时钟类。TimeTest1类是一个用于测试时钟类的包含main方法的主类,在main方法中将创建Time1类的一个对象,并调用对象的公共方法。,.,7,4.1.2用类实现抽象数据类型:时钟类(续),Time1.java文件的代码如下:importjava.text.DecimalFormat;publicclassTime1extendsObjectprivateinthour;privateintminute;privateintsecond;publicTime1()setTime(0,0,0);publicvoidsetTime(inth,intm,ints)hour=(h=0,时,分,秒,设置时间,.,8,4.1.2用类实现抽象数据类型:时钟类(续),publicStringtoUniversalString()/toUniversalString方法以24时制格式显示时间DecimalFormattwoDigits=newDecimalFormat(00);returntwoDigits.format(hour)+:+twoDigits.format(minute)+:+twoDigits.format(second);publicStringtoStandardString()/toStandardString方法以12时制格式显示时间DecimalFormattwoDigits=newDecimalFormat(00);return(hour=12|hour=0)?12:hour%12)+:+twoDigits.format(minute)+:+twoDigits.format(second)+(hour=0,带有一个参数的setTime方法,带有两个参数的setTime方法,带有三个参数的setTime方法,.,27,4.5初始化类的对象:构造函数,构造方法用于为类的新建的对象分配内存空间和进行初始化,如例4-1在Time1类中创建了一个构造函数(不带任何参数)。在构造函数中对三个成员变量进行了初始化。构造函数只能在创建对象时用new命令调用。定义必须构造函数时,注意两点:构造方法必须与其类名相同;构造方法没有返回值,但可以有参数,并且可以重载。,.,28,4.5初始化类的对象:构造函数(续),例4-5举例说明构造函数的重载。Time4.java文件的部分代码:/5个重载的构造函数publicTime4()setTime(0,0,0);publicTime4(inth)setTime(h,0,0);publicTime4(inth,intm)setTime(h,m,0);publicTime4(inth,intm,ints)setTime(h,m,s);publicTime4(Time4time)setTime(time.hour,time.minute,time.second);,不带参数的构造函数,带一个参数的构造函数,带两个参数的构造函数,带三个参数的构造函数,带一个参数为对象的构造函数,.,29,4.6this,this定义为被调用的方法的当前对象的引用。this引用仅能出现在类中的方法中。例4-6this的使用例子说明如何隐式地和显式地使用this引用。例子中SimpleTime类的构造方法的三个参数名与SimpleTime类三个成员变量名相同。在这种情况下,局部变量在该方法作用域中屏蔽了同名的域。我们可以使用this来显式地引用屏蔽的域。通过this不但可以引用成员变量,也可通过this引用方法,包括构造函数。本例子中通过this引用方法。,.,30,4.7垃圾收集,Java平台允许创建任意个对象(当然会受到系统资源的限制),而且当对象不再使用时自动会被清除,这个过程就是所谓的“垃圾收集”。当对象不再被引用的时候,对象就会被作为垃圾收集的对象而清除。为了使对象不再被引用,可以通过设置执行指向某一对象的引用为null。例如:Time1time=newTime1();Time=null;1垃圾收集器2撤销方法finalize,.,31,4.8static方法和域,当声明一个成员变量时,可以指定成员变量是属于一个类的所有对象共享static(称为类的变量),还是属于一个类的各个对象所拥有(称为实例变量,是类的实例拥有)。类的变量又称为静态成员,以关键字static声明。例如:staticintcount;类的静态成员的使用格式一般为:类名.静态变量名;类名.静态方法名();例4-7静态方法和域的应用,.,32,4.9类的组合,一个类中的成员可以是其他类的引用,这叫类的组合。例4-8类的组合,.,33,4.10包的创建和访问,4.10.1包的创建4.10.2包的使用,.,34,4.10.1包的创建,建立一个包时,使用package语句。package语句必须是整个java文件的第一个语句。创建package语句格式:package包名;例如:将在当前目录下创建一个包,包名为.sytu.it.ch04,Time1放在此包中。.sytu.it.ch04;publicclassTime1,.,35,4.10.2包的使用,import语句用于导入用户的源代码文件中使用的其他包中的类,这些类和当前类不在同一个包中。例如:.sytu.it.ch04.Time1;.sytu.it.ch04.*;*表示导入整个包,即导入整个子包.sytu.it.ch04中的所有类,但不包括.sytu.it.ch04中子包。如果没有使用import语句导入某个包,但又想使用它的某个类,也可以直接在所需要的类名前加上包名前缀。例如,要使用类Time1类创建一个对象time,语句如下:.sytu.it.ch04.Time1time;例4-9包的创建及使用,.,36,小结,本章介绍了面向对象程序设计的重要概念类和对象。类是一种抽象的数据类型,用来表示具有相同性质的一类事物。类封装了对象的属
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年购车贷款需要签订合同吗
- 2025合作伙伴解除协议合同书
- 2025年保密行业考试题及答案
- 2025年保安考试题全套及答案
- 2025年奥尔夫考试内容及答案
- 2025年租赁合同范本:出租房屋租赁合同样本
- 江苏农行培训题库及答案
- 2025年应对负面情绪题库及答案
- 佛山古建筑施工方案设计
- 南昌玻璃钢雕塑施工方案
- 2024荆州理工职业学院辅导员招聘笔试真题
- (高清版)DB11∕T 2453-2025 大型活动医疗保障通 用要求
- 气管插管病人的护理及注意事项讲课件
- CJ/T 316-2009城镇供水服务
- 代持股合同范本8篇
- 机场安检员笔试题及答案
- 法院赔偿申请书
- 【MOOC】《思想道德与法治》(东南大学)章节中国大学慕课答案
- 中医养生按摩养生
- 专业技术职务任职资格评审表(样表)
- 《工程经济与项目管理》课程教学大纲
评论
0/150
提交评论