首页 Java_2实用教程课件(耿祥义_第3版第4章)

Java_2实用教程课件(耿祥义_第3版第4章)

举报
开通vip

Java_2实用教程课件(耿祥义_第3版第4章)nullJava 2实用教程(第3版)教学课件Java 2实用教程(第3版)教学课件课件制作 耿祥义 张跃平 配合例子代码一同使用  例子代码可登录www.tup.tsinghu.edu.cn下载 第4章 类、对象和接口 第4章 类、对象和接口 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 su...

Java_2实用教程课件(耿祥义_第3版第4章)
nullJava 2实用教程(第3版)教学 课件 超市陈列培训课件免费下载搭石ppt课件免费下载公安保密教育课件下载病媒生物防治课件 可下载高中数学必修四课件打包下载 Java 2实用教程(第3版)教学课件课件制作 耿祥义 张跃平 配合例子代码一同使用  例子代码可登录www.tup.tsinghu.edu.cn下载 第4章 类、对象和接口 第4章 类、对象和接口 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文件 null4.1 编程语言的几个发展阶段 4.2 类4.1 编程语言的几个发展阶段 4.1 编程语言的几个发展阶段 机器语言(0,1) 计算机处理信息的早期语言是所谓的机器语言,这种语言中的指令都是由0,1组成的序列,称这样的序列为一条机器指令。 汇编语言:用简易符号代替二进制指令,是低级语言。 过程语言 语言把代码组成叫做过程或函数的块。每个块的目标是完成某个任务,例如,一个C的源程序就是由若干个书写形式互相独立的函数组成。 将高级语言转化为机器指令两种方式:将高级语言转化为机器指令两种方式:编译方式:针对当前机器处理器芯片,将源文件全部编译成机器指令,称为目标程序,再将目标程序交给计算机执行。 解释方式:不产生整个的目标程序,根据当前机器处理器芯片,边解释边执行,解释一句,执行一句。 提问:java语言属于哪一种?null面向对象编程 面向对象编程主要体现下列三个特性: 1.封装性: 2.继承 3.多态 封装性封装性面向对象核心思想就是将数据和对数据的操作封装在一起。 通过抽象,从具体实例中抽取共同性质形成一般的概念,比如类的概念。 例如:机动车类,有属性和功能。 封装在一类中。继承性继承性继承体现了一种先进的编程模式。子类继承父类的属性和功能,同时又可增添子类独有的属性和功能。 例如:人类继承了哺乳类的属性和功能。有增添了独有的属性和功能。会说话多态性多态性后面再讲 Java语言是面向对象语言,它的源程序是由若干个类组成,源文件是扩展名为.java的文本文件4.2 类 4.2 类 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类的实现包括两部分:类声明和类体。 1.类声明 1.类声明 class People { 类体 } “class People”叫做类声明;“People” 是类名。习惯上类名的第一个字母大写,但这不是必须的。 nullclass 动物 {…… } class BeijingHello {…… } 容易记忆 2.类体 2.类体 写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”,“}”以及它们之间的内容称做类体,大括号之间的内容称做类体的内容。 类体的内容由两部分构:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。nullclass 梯形 { float 上底,下底,高,laderArea; //变量定义部分 float 计算面积() //方法定义 { laderArea=(上底+下底)*高/2.0f; return laderArea; } void 修改高(float h) //方法定义 { 高=h; } }3.成员变量和局部变量 3.成员变量和局部变量 类体分为两部分:变量定义部分和方法定义部分。 成员变量:类体中在变量定义部分定义的变量。 局部变量:类体中在方法体中定义的变量和方法的参数。 成员变量在整个类内都有效,局部变量只在定义它的方法内有效。 nullclass Point { int x,y; Point(int a,int b) { x=a; y=b; } } 实例变量和类变量实例变量和类变量成员变量又分为实例成员变量(简称实例变量)和类变量(也称静态变量) .如果成员变量的类型前面加上关键字static,这样的成员变量称做是类变量或静态变量。 class Dog { int x; //实例变量 static int y; //类变量 }null如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效 。 class Point { int x=5,y; void f() { int x=3; y=x; } } 如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏。这时如果想在该方法内使用成员变量,必须使用关键字this。nullclass 三角形 { float sideA,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.方法 4.方法 我们已经知道一个类的类体由两部分组成:变量的定义和方法的定义。方法的定义包括两部分:方法声明和方法体。 方法参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效。如果局部变量的定义是在一个复合语句中,那么该局部变量的有效范围是该复合语句,即仅在该复合语句中有效,如果局部变量的定义是在一个循环语句中,那么该局部变量的有效范围是该循环语句,即仅在该循环语句中有效 。 写一个方法和C语言中写一个函数类似,只不过在这里称做方法 class A { void f() { int m=0,sum=0; if (m>9) { int z=10; //1 } for (int i=0;i9) { int z=10; //1 } for (int i=0;iy?x:y; } }nullabstract类不能用new运算创建对象 对于abstract类,我们不能使用new运算符创建该类的对象,需产生其子类,由子类创建对象,如果一个类是abstract类的子类,它必须具体实现父类的abstract方法,这就是为什么不允许使用final修饰abstract方法的原因。 一个abstract类只关心它的子类是否具有某种功能,并不关心功能的具体行为,功能的具体行为由子类负责实现,抽象类中的抽象方法可以强制子类必须给出这些方法的具体实现。例4.21,4.22 4.12 super关键字 4.12 super关键字 子类不继承父类的构造方法,因此,子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句。 如果我们在子类中想使用被子类隐藏了的父类的成员变量或方法就可以使用关键字super。比如:super.x、super.play(),就是被子类隐藏的父类的成员变量x和方法play()。 4.13接口 4.13接口 Java不支持多继承性,即一个类只能有一个父类。单继承性使得Java简单,易于管理程序。为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口。 1.接口的声明与使用 1.接口的声明与使用 使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口的声明和接口体。 接口体中包含常量定义和方法定义两部分。接口体中只进行方法的声明,不许提供方法的实现,所以,方法的定义没有方法体,且用分号“;”结尾。如: interface Printable { final int MAX=100; void add(); float sum(float x ,float y); }接口的使用 接口的使用 一个类通过使用关键字implements 声明自己使用一个或多个接口。如果使用多个接口,用逗号隔开接口名。如: class A implements Printable,Addable 如果一个类使用了某个接口,那么这个类必须实现该接口的所有方法,即为这些方法提供方法体 .注意注意接口中的方法默认是public abstract方法,所以 类实现接口方法时,必须用public修饰。 接口中的常量默认是public static常量。 接口编写时,常量定义时,public,final和static关键字可以省略,方法定义时,public和abstract关键字也可以省略。 例子4.25注:注:一个类实现一个接口,这个类可以创建对象,这个对象可以调用接口中的常量和方法,常量也可以由类名或接口名直接调用 如果父类实现了一个接口,那么子类自然的实现了这个接口,不用使用extends关键字。 接口也可以被继承,形成子接口。 如果一个类实现了一个接口,但是没有实现这个接口中的所有方法,那么这个类一定是抽象类2.理解接口 2.理解接口 接口的思想在于它可以增加很多类都需要实现的功能,使用相同的接口类不一定有继承关系. 同一个类也可以实现多个接口。接口只关心功能,并不关心功能的具体实现. 例4.263.接口回调 3.接口回调 接口回调是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法 . 例4.27,4.284.接口做参数 4.接口做参数 一个方法的参数是接口类型,就可以将任何实现该接口的类的实例的引用传递给该接口参数,接口参数就可以回调类实现的接口方法。 例4.294.14 内部类 4.14 内部类 Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。 内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。 4.15 匿名类 4.15 匿名类 和类有关的匿名类    当使用类创建对象时,程序允许我们把类体与对象的创建组合在一起,也就是说,类创建对象时,除了构造方法还有类体,此类体被认为是该类的一个子类去掉类声明后的类体,称作匿名类。 和接口有关的匿名类    Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了接口的类去掉类声明后的类体,称作匿名类 .4.16 异常类 4.16 异常类 程序运行出现异常时(编译能通过,程序没错误),Java运行环境就用异常类Exception的相应子类创建一个异常对象,并等待处理,例如,读取一个不存在的文件时,运行环境就用异常类IOException创建一个对象,异常对象可以调用如下方法得到或输出有关异常的信息: public String getMessage() public void printStackTrace() public String toString()null使用try~catch语句来处理异常,将可能出现的异常操作放在try~catch语句的try部分,当try部分中的某个语句发生异常后,try部分将立刻结束执行,而转向执行相应的catch部分;所以程序可以将发生异常后的处理放在 catch部分。try~catch语句可以由几个catch组成,分别处理发生的相应异常。 nulltry~catch语句的格式如下: try { 包含可能发生异常的语句 } catch(ExceptionSubClass1 e) { } catch(ExceptionSubClass2 e) { }null各个catch参数中的异常类都是Exception的某个子类。 这些子类之间不能有父子关系 常见异常类的子类有IOException,NumberFormatException 例4.33 自定义异常类自定义异常类自己可以扩展Exception类,来自己定义Exception的子类。 一个方法声明时可以使用throws关键字来声明要产生的若干个异常。Catch的作用是捕获throws抛出的异常。 例4.344.17 Class类 4.17 Class类 Class是java.lang包中的类,该类的实例用来封装对象运行时的状态。当一个类被加载且创建对象时,和该类相关的一个类型为Calss的对象就会自动创建。Class类本身不提供构造方法,因此,不能使用new运算符和构造方法显示地创建一个Class对象。任何对象调用getClass()方法都可以获取和该对象相关的一个Class对象,这个Class对象调用如下的方法可以获取创建对象的类的有关信息. 使用Class实例化一个对象 使用Class实例化一个对象 创建对象最常用的方式就是使用new运算符和类的构造方法,实际上我们也可以使用Class对象得到一个类的实例。为了得到一个类的对象,可以先得到一个和该类相关的Class对象,做到这一点并不困难,只要使用Class的类方法 public static Class forName(String className) throws ClassNotFoundException 就可以返回一个和参数className指定的类相关的Class对象。再让这个Class对象调用 public Object newInstance() throws InstantiationException,IllegalAccessException 方法就可以得到一个className类的对象。4.18 基本类型的类包装 4.18 基本类型的类包装 Java的基本数据类型包括:byte、int、short、long、float、double、char。Java同时也提供了基本数据类型相关的类,实现了对基本数据类型的封装。这些类在java.lang包中,分别是:Byte、Integer、Short、Long、Float、Double和Character类。1. Double和Float类 1. Double和Float类 Double类和Float类实现了对double和float基本型数据的类包装。 可以使用Double类的构造方法: Double (double num) 创建一个Double类型的对象; 使用Float类的构造方法: Float (float num) 创建一个Float类型的对象。 Double对象调用doubleValue()方法可以返回该对象含有的double型数据; Float对象调用floatValue()方法可以返回该对象含有的float型数据。2. Byte、Integer、Short、Long类 2. Byte、Integer、Short、Long类 下述构造方法分别可以创建Byte、Integer、Short和Long类型的对象: Byte(byte num) Integer(int num) Short(short num) Long(long num) Byte、Integer、Short和Long对象分别调用byteValue ()、intValue()、shortValue ()和longValue ()方法可以返回该对象含有的基本型数据。 3. Character类 3. Character类 Character类实现了对char基本型数据的类包装。 可以使用Character类的构造方法: Character (char c) 创建一个Character类型的对象。 Character对象调用charValue()方法可以返回该对象含有的char型数据。 例4.374.19 反编译和文档生成器 4.19 反编译和文档生成器 使用SDK提供的反编译器:javap.exe可以将字节码反编译为源码,查看源码类中的方法名字和成员变量的名字 . 使用SDK提供的javadoc.exe可以制做源文件类结构的html格式文档。
本文档为【Java_2实用教程课件(耿祥义_第3版第4章)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_885942
暂无简介~
格式:ppt
大小:296KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-03-08
浏览量:39