java面向对象程序设计_第1页
java面向对象程序设计_第2页
java面向对象程序设计_第3页
java面向对象程序设计_第4页
java面向对象程序设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、整理课件1第四章第四章 类类 和和 对对 象象整理课件2教学目标教学目标n理解数据抽象和数据隐藏n创建类n能够创建和使用对象n能够控制对实例变量和方法的访问n方法的重载n构造函数的使用n理解this引用的用法n理解Java的垃圾收集机制nstatic方法和域的使用n类的组合n包的创建和使用整理课件34.1 面向对象程序设计的思想面向对象程序设计的思想n4.1.1 OOP思想n4.1.2 用类实现抽象数据类型:时钟类 n4.1.3 类成员:构造函数、方法和域 整理课件44.1.1 OOP思想思想n面向对象编程技术n将数据及对数据的操作封装在一起而形成了类,类是描述相同类型的对象集合。 。面向对象

2、编程(object-oriented programming,OOP)就是定义这些类。n类作为抽象的数据类型用于创建类的对象。n程序的执行,表现为一组对象之间的交互通信。对象之间通过公共接口进行通信,从而完成系统功能。对象的公共接口是该对象的应用程序编程接口(Application Programming Interface,API),把对象的内部详细信息隐藏起来,使得对象变得抽象,将这种技术称为数据的抽象化。nJava语言是完全面向对象的语言,程序的结构由一个以上的类组成。所有的过程都被封装起来,并将它们称之为方法。整理课件54.1.2 用类实现抽象数据类型:时钟类用类实现抽象数据类型:时钟

3、类n类作为一种抽象的数据类型,封装了对象的数据属性和动态行为,被用来定义类的对象。n下面我们将通过一个具体的实例来理解什么是类,如何定义类、创建对象和使用对象。n时钟类的设计:(1) 数据属性: 时(int hour); 分 (int minute); 秒(int second)。(2) 行为: 设置时间 setTime() ; 显示时间 toUniversalString() 、 toStandardString() ; 走时 (暂时不考虑); 整理课件64.1.2 用类实现抽象数据类型:时钟类(续)用类实现抽象数据类型:时钟类(续)例4-1 时钟类的实现。 该例子包含两个文件Time1.j

4、ava和TimeTest1.java。n Time1.java是用于定义时钟类。n TimeTest1类是一个用于测试时钟类的包含main方法的主类,在main方法中将创建Time1类的一个对象,并调用对象的公共方法。整理课件74.1.2 用类实现抽象数据类型:时钟类(续)用类实现抽象数据类型:时钟类(续)Time1.java文件的代码如下:import java.text.DecimalFormat; public class Time1 extends Object private int hour; private int minute; private int second; publ

5、ic Time1() setTime( 0, 0, 0 );public void setTime( int h, int m, int s ) hour = ( ( h = 0 & h = 0 & m = 0 & s 60 ) ? s : 0 );时分秒设置时间整理课件84.1.2 用类实现抽象数据类型:时钟类(续)用类实现抽象数据类型:时钟类(续)public String toUniversalString() /toUniversalString方法以24时制格式显示时间 DecimalFormat twoDigits = new DecimalFormat( 00 ); return

6、 twoDigits.format( hour ) + : + twoDigits.format( minute ) + : + twoDigits.format( second ); public String toStandardString() /toStandardString方法以12时制格式显示时间 DecimalFormat twoDigits = new DecimalFormat( 00 ); return ( (hour = 12 | hour = 0) ? 12 : hour % 12 ) + : + twoDigits.format( minute ) + : + tw

7、oDigits.format( second ) + ( hour = 0 & h = 0 & m = 0 & s 60 ) ? s : 0 ); 带有一个参数的setTime方法带有两个参数的setTime方法带有三个参数的setTime方法整理课件274.5 初始化类的对象:构造函数初始化类的对象:构造函数 n构造方法用于为类的新建的对象分配内存空间和进行初始化,如例4-1在Time1类中创建了一个构造函数(不带任何参数)。在构造函数中对三个成员变量进行了初始化。构造函数只能在创建对象时用new命令调用。定义必须构造函数时,注意两点:构造方法必须与其类名相同;构造方法必须与其类名相同;构造

8、方法没有返回值,但可以有参数,构造方法没有返回值,但可以有参数,并且可以重载。并且可以重载。整理课件284.5 初始化类的对象:构造函数(续)初始化类的对象:构造函数(续)例4-5举例说明构造函数的重载。 Time4.java文件的部分代码: /5个重载的构造函数 public Time4() setTime( 0, 0, 0 ); public Time4( int h ) setTime( h, 0, 0 ); public Time4( int h, int m ) setTime( h, m, 0 ); public Time4( int h, int m, int s ) setTi

9、me( h, m, s ); public Time4( Time4 time ) setTime( time.hour, time.minute, time.second ); 不带参数的构造函数带一个参数的构造函数带两个参数的构造函数带三个参数的构造函数带一个参数为对象的构造函数整理课件294.6 thisnthis定义为被调用的方法的当前对象的引用。this引用仅能出现在类中的方法中。n例4-6 this的使用例子说明如何隐式地和显式地使用this引用。例子中SimpleTime类的构造方法的三个参数名与SimpleTime类三个成员变量名相同。在这种情况下,局部变量在该方法作用域中屏蔽

10、了同名的域。我们可以使用this来显式地引用屏蔽的域。通过this不但可以引用成员变量,也可通过this引用方法,包括构造函数。本例子中通过this引用方法。整理课件304.7 垃圾收集垃圾收集nJava平台允许创建任意个对象(当然会受到系统资源的限制),而且当对象不再使用时自动会被清除,这个过程就是所谓的“垃圾收集”。当对象不再被引用的时候,对象就会被作为垃圾收集的对象而清除。为了使对象不再被引用,可以通过设置执行指向某一对象的引用为null。例如:Time1 time=new Time1();Time=null;1垃圾收集器垃圾收集器2撤销方法撤销方法finalize整理课件314.8 s

11、tatic方法和域方法和域n当声明一个成员变量时,可以指定成员变量是属于一个类的所有对象共享static (称为类的变量),还是属于一个类的各个对象所拥有( 称为实例变量,是类的实例拥有)。类的变量又称为静态成员,以关键字static声明。例如: static int count;类的静态成员的使用格式一般为:类名.静态变量名;类名.静态方法名();n例4-7 静态方法和域的应用整理课件324.9 类的组合类的组合n一个类中的成员可以是其他类的引用,这叫类的组合。n例4-8 类的组合整理课件334.10 包的创建和访问包的创建和访问n4.10.1 包的创建 n4.10.2 包的使用 整理课件3

12、44.10.1 包的创建包的创建n 建立一个包时,使用package语句。package语句必须是整个java文件的第一个语句。创建package语句格式: package 包名;n例如: 将在当前目录下创建一个包,包名为.sytu.it.ch04,Time1放在此包中。package .sytu.it.ch04;public class Time1 整理课件354.10.2 包的使用包的使用nimport语句用于导入用户的源代码文件中使用的其他包中的类,这些类和当前类不在同一个包中。例如:import .sytu.it.ch04.Time1; nimport .sytu.it.ch04.*; *表示导入整个包,即导入整个子包.sytu.it.ch04中的所有类,但不包括.sytu.it.ch04中子包。n如果没有使用import语句导入某个包,但又想使用它的某个类,也可以直接在所需要的类名前加上包名前缀。前缀。例如,要使用类Time1类创建一个对象time,语句如下: .sytu.it.ch04.Time1 time;例4-9 包的创建及使用整理课件36小结小结 n本章介绍了面向对象程序设计的重要概念类和对象。类是一种抽象的数据类型,用来表示具

温馨提示

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

评论

0/150

提交评论