java2实用教程课件(第3版第4章)

上传人:san****019 文档编号:70772325 上传时间:2019-01-18 格式:PPT 页数:70 大小:403.81KB
返回 下载 相关 举报
java2实用教程课件(第3版第4章)_第1页
第1页 / 共70页
java2实用教程课件(第3版第4章)_第2页
第2页 / 共70页
java2实用教程课件(第3版第4章)_第3页
第3页 / 共70页
java2实用教程课件(第3版第4章)_第4页
第4页 / 共70页
java2实用教程课件(第3版第4章)_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《java2实用教程课件(第3版第4章)》由会员分享,可在线阅读,更多相关《java2实用教程课件(第3版第4章)(70页珍藏版)》请在金锄头文库上搜索。

1、第章 类、对象和接口,4.1 编程语言的几个发展阶段 4.2 类 4.3 对象 4.4 static 关键字 4.5 this 关键字 4.6 包 4.7 访问权限 4.8 类的继承 4.9 对象的上转型对象 4.10 多态性,4.11 abstract 类和abstract方法 4.12 super关键字 4.13 接口 4.14 内部类 4.15 匿名类 4.16 异常类 4.17 Class类 4.18 基本类型的类包装 4.19 反编译和文档生成器 4.20 jar文件,4.1 编程语言的几个发展阶段,机器语言(如汇编语言) 计算机处理信息的早期语言是所谓的机器语言,这种语言中的指令都

2、是由0,1组成的序列,称这样的序列为一条机器指令。 过程语言 语言把代码组成叫做过程或函数的块。每个块的目标是完成某个任务,例如,一个C的源程序就是由若干个书写形式互相独立的函数组成。 面向对象编程 面向对象编程主要体现下列三个特性: 1.封装性 2.继承 3.多态 Java语言是面向对象语言,它的源程序是由若干个类组成,源文件是扩展名为.java的文本文件,4.2 类,类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类的实现包括两部分:类声明和类体。,1.类声明,class People “class People”叫做类声明;“People” 是类名

3、。习惯上类名的第一个字母大写,但这不是必须的。,2.类体,写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“”,“”以及它们之间的内容称做类体,大括号之间的内容称做类体的内容。 类体的内容由两部分构:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。,class 梯形 float 上底,下底,高,laderArea; /变量定义部分 float 计算面积() /方法定义 laderArea=(上底+下底)*高/2.0f; return laderArea; void 修改高(float h) /方法定义 高=h; ,3.成员变量和局

4、部变量,我们已经知道类体分为两部分。变量定义部分所定义的变量被称为类的成员变量。在方法体中定义的变量和方法的参数被称为局部变量。 成员变量在整个类内都有效,局部变量只在定义它的方法内有效。 成员变量又分为实例成员变量(简称实例变量)和类变量(也称静态变量) .如果成员变量的类型前面加上关键字static,这样的成员变量称做是类变量或静态变量。 如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效 . 如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏。这时如果想在该方法内使用成员变量,必须使用关键字this。,class 三角形 float sid

5、eA,sideB,sideC,lengthSum; void setSide(float sideA,float sideB,float sideC) this.sideA=sideA; this.sideB=sideB; this.sideC=sideC; this.sideA,this.sideB,this.sideC就分别表示成员变量sideA,sideB,sideC,4.方法,我们已经知道一个类的类体由两部分组成:变量的定义和方法的定义。方法的定义包括两部分:方法声明和方法体。 方法参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效。如果局部变量的定义是在一个复合语句

6、中,那么该局部变量的有效范围是该复合语句,即仅在该复合语句中有效,如果局部变量的定义是在一个循环语句中,那么该局部变量的有效范围是该循环语句,即仅在该循环语句中有效 . 写一个方法和C语言中写一个函数类似,只不过在这里称做方法,5.方法重载,方法重载的意思是:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。,class Area float getArea(float r) return 3.14f*r*r; double getArea(float x,int y) return x*y; float getArea(int x,

7、float y) return x*y; double getArea(float x,float y,float z) return (x*x+y*y+z*z)*2.0; ,6.构造方法,构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有类型,构造方法也可以重载。,class 梯形 float 上底,下底,高; 梯形() 上底=60; 下底=100; 高=20; 梯形(float x,int y,float h) 上底=x; 下底=y; 高=h; ,7.类方法和实例方法,类中的方法也可分为实例方法和类方法. 方法声明时,方法类型前面不加关键字static的是实例方法、加

8、关键字static的是类方法。 构造方法是特殊的方法,不能用static修饰构造方法。,4.3 对象,类是创建对象的模板。当使用一个类创建了一个对象时,我们也说我们给出了这个类的一个实例。,1.创建对象,创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1)对象的声明。 一般格式为: 类的名字 对象名字; 如: People zhangPing;,(2)为声明的对象分配内存 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的,你一定还记得构造方法的名字必须和类名相同这一规定)。如: zhangPing=new Pe

9、ople();,(3)对象的内存模型 使用例子1来说明对象的内存模型 class XiyoujiRenwu float height,weight; String head, ear,hand,foot, mouth; void speak(String s) System.out.println(s); class A public static void main(String args) XiyoujiRenwu zhubajie; /声明对象 zhubajie=new XiyoujiRenwu(); /为对象分配内存, /使用new 运 算 符和默认的构造方法 ,声明对象时的内存模型,

10、当用XiyoujiRenwu类声明一个变量,即对象zhubajie时,如例子1中的对象zhubajie: XiyoujiRenwu zhubajie; 内存模型如左图所示,对象分配内存后的内存模型,当系统见到: zhubajie=new XiyoujiRenwu(); 时,就会做两件事: 为height,weight,head,ear,mouth,hand,foot各个变量分配内存,即XiyoujiRenwu类的成员变量被分配内存空间,然后执行构造方法中的语句。 new运算符在为变量height,weight,head,ear,mouth,hand,foot分配内存后,将返回一个引用给对象变量

11、zhubajie。,2.使用对象,对象不仅可以操作自己的变量改变状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。 通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。 当对象调用方法时,方法中出现的成员变量就是指该对象的成员变量。,3.对象的引用和实体,当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称做该对象的实体,而对象中存放着引用,以确保实体由该对象操作使用。 一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。 没有实体的对象称作空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。,4.参

12、数传值,当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有具体的值。在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。例如,如果向方法的int型参数x传递一个int值,那么参数x得到的值是传递值的拷贝。方法如果改变参数的值,不会影响向参数“传值”的变量的值。,基本数据类型参数的传值,对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别,比如,不可以向int型参数传递一个float值,但可以向double型参数传递一个float值。,引用类型参数的传值,Java的引用型数据包括对象、数组和接口。当参数是引用类型时,“传

13、值”传递的是变量的引用而不是变量所引用的实体。 如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。但是,改变参数的引用不会影响向其传值的变量的引用。,4.4 static 关键字,用static修饰的成员变量称为类变量 用static修饰的方法称为类方法,实例变量和类变量的区别,一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有的对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。 类变量是和该类创建的所有对象相关联的变量,改变其中一个对象的这个类变量就同

14、时改变了其它对象的这个类变量。因此,类变量不仅可以通过某个对象访问也可以直接通过类名访问。实例变量仅仅是和相应的对象关联的变量,也就是说,不同对象的实例变量互不相同,即分配不同的内存空间,改变其中一个对象的实例变量不会影响其它对象的这个实例变量。实例变量可以通过对象访问,不能使用类名访问。,.实例方法和类方法的区别,实例方法可以被类创建的任何对象调用执行。 类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用,4.5 this 关键字,this是Java的一个关键字,表示某个对象。 this可以出现在实例方法和构造方法中,但不可以出现在类方法中。 this关键字出现在类的构造方法中

15、时,代表使用该构造方法所创建的对象。 this关键字出现在类的实例方法中时,代表正在调用该方法的当前对象。,4.6 包,包是Java语言中有效地管理类的一个机制。,1.包语句,通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。package语句的一般格式为: package 包名; 如果源程序中省略了package语句,源文件中你定义命名的类被隐含地认为是无名包的一部分,即源文件中定义命名的类在同一个包中,但该包没有名字。 包名可以是一个合法的标识符,也可以是若干个标识符加“.”分割而成 。,. import 语句,使用imp

16、ort 语句可以引入包中的类。 在编写源文件时,除了自己编写类外,我们经常需要使用Java提供的许多类,这些类可能在不同的包中。 在学习Java语言时,使用已经存在的类,避免一切从头做起,这是面向对象编程的一个重要方面。,4.7访问权限,类创建了一个对象之后,该对象可以通过“.”运算符操作自己的变量、使用类中的方法,但对象操作自己的变量和使用类中的方法是有一定限制的。 所谓访问权限是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法。 访问限制修饰符有private、protected和public,都是Java的关键字,用来修饰成员变量或方法。,1.私有变量和私有方法,一

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号