第4章 java语言中的面向对象特性ppt课件

上传人:我*** 文档编号:149210888 上传时间:2020-10-25 格式:PPT 页数:144 大小:317.50KB
返回 下载 相关 举报
第4章 java语言中的面向对象特性ppt课件_第1页
第1页 / 共144页
第4章 java语言中的面向对象特性ppt课件_第2页
第2页 / 共144页
第4章 java语言中的面向对象特性ppt课件_第3页
第3页 / 共144页
第4章 java语言中的面向对象特性ppt课件_第4页
第4页 / 共144页
第4章 java语言中的面向对象特性ppt课件_第5页
第5页 / 共144页
点击查看更多>>
资源描述

《第4章 java语言中的面向对象特性ppt课件》由会员分享,可在线阅读,更多相关《第4章 java语言中的面向对象特性ppt课件(144页珍藏版)》请在金锄头文库上搜索。

1、第四章 Java语言中的面向对象特性,类是Java中的一种重要的复合数据类型,封装了一类对象的属性和方法,是这一类对象的原型。实例化一个类就得到一个对象。 包括类声明和类体 类声明: publicabstract|final class className extends superclassName implements interfaceNameList ,一、类的定义及组成,4.1 类,类体定义如下: class className public | protected | private static final transient volatile type variableName

2、; /成员变量 public | protected | private static final | abstract native synchronized returnType methodName(paramList) throws exceptionList statements /成员方法 ,成员变量,public | protected | private static final transient volatile type variableName; /成员变量 static: 静态变量(类变量;相对于实例变量 final: 常量 transient: 暂时性变量,用于对象

3、存档 volatile: 共享变量,用于并发线程的共享,成员方法,public | protected | private static final | abstract native synchronized returnType methodName(paramList) throws exceptionList /方法声明 statements /方法体 方法声明 static: 类方法,可通过类名直接调用 abstract: 抽象方法,没有方法体 final: 方法不能被重写 native: 集成其它语言的代码 synchronized: 控制多个并发线程的访问,方法声明 最简单的方法

4、声明包括方法名和返回类型 returnType methodName() methodBody 返回类型可以是任意的java数据类型,当一个方法不需要返回值的时候,返回类型为void。,方法声明中还可以给出参数 returnType methodName(type name,typname,) 参数的类型可以是简单数据类型,也可以是引用数据类型(数组类型、类或接口)。对于简单数据类型,java实现的是值传递,方法接收参数值,但并不能改变这些参数的值。如果要改变参数的值,则要用到引用类型,因为引用数据类型传递给方法的是数据在内存中的地址,方法对数据的操作可以改变数据的值。,成员方法(值参传递),

5、参数的值参传递,例4.1 public class PassTest float ptValue; public static void main(String args ) int val; PassTest pt=new PassTest(); val=11; System.out.println(“Original Int Value is:”+val);,pt.changedInt(val); System.out.println(“Int Value after Change is:” +val); pt.ptValue=101f; System.out.println(“Origi

6、nal ptValue is:”+pt.ptValue); pt.ChangeObjValue(pt); System.out.println(“ptValue after Change is:”+pt.ptValue); public void changeInt(int value) value=55; ,public void changeObjValue(PassTest ref) ref.ptValue=99f; 运行结果 c:java PassTest Original Int Value is : 11 Int Value after Change is: 11 Original

7、 ptValue is: 101.0 ptValue after Change is : 99.0,方法体,方法体包括局部变量的声明以及所有合法的Java指令。 局部变量的作用域在该方法内部。方法返回时,局部变量也不存在了。 若局部变量与类的成员变量同名,则类的成员变量被隐藏。,例4.2 class Variable int x=0,y=0,z=0; /类的成员变量 void init(int x,int y) this.x=x; this.y=y; int z=5; /局部变量 System.out.println(“* in init*”); System.out.println(“x=”

8、+x+“ y=”+y+“ z=”+z); ,public class VariableTest public static void main(String args ) Variable v=new Variable(); System.out.println(“*before init*”); System.out.println(“x=”+v.x+ “y=”+ v.y+“z=”+v.z); v.init(20,30); System.out.println(“*after init*”); System.out.println(“x=”+v.x+ “y=”+ v.y+“z=”+v.z);

9、 ,运行结果 c:java VariableTest *before init* x=0 y=0 z=0 * in init * x=20 y=30 z=5 *after init* x=20 y=30 z=0,this-用在一个方法中引用当前对象,它的值是调用该方法的对象。 对于一个方法,如果声明中所指定的返回类型不为void,则在方法替中必须包含return语句,返回指定类型的值。返回值须与返回类型一致,或是其子类。 返回类型是接口时,返回值必须实现该接口。,二、方法重载(Method Overloading),方法重载指多个方法享有相同的方法名 区别在于:参数类型不同,或个数不同; 参数

10、类型的区分度要够,例如不能是同一简单类型,如int , long 返回类型不能用来区分重载的方法。,例4.3 class MethodOverloading void receive(int i) System.out.println(“Receive one int data:”); System.out.println(“i=“+i); void receive(int x, int y) System.out.println(“Receive tow int datas:”); System.out.println(x=+x+ y=+y); void receive(double d)

11、System.out.println(“Receive one double data:”); System.out.println(d=+d); void receive(String s) System.out.println(“Receive a string:”); System.out.println(s=+s); ,public class MethodOverloadingTest public static void main(String args) MethodOverloading mo = new MethodOverloading(); mo.receive(1);

12、mo.receive(2,3); mo.receive(12.56); mo.receive(“very interesting, isnt it?”); ,运行结果: c:java MethodOverloadingTest Receive one int data i=1 Receive two int datas x=2 y=3 Receive one double data d=12.56 Receive a string s=very interesting, isnt it?,三、构造方法,构造方法是一类特殊得方法,Java中每个类都有构造方法,用来初始化该类的一个新的对象; 重载

13、经常用于构造方法; 构造方法具有和类名相同的名称,而且不返回任何数据类型; 构造方法只能由new运算符调用; 利用构造方法进行初始化;,例4.4 class Point int x,y; Point() x=0; y=0; Point(int x, int y) this.x=x; this.y=y; 构造方法对对象进行初始化,避免了在生成对象后每次都要调用对象的初始化方法。如果程序中没有实现类的构造方法,则Java运行时系统会自动提供缺省的构造方法,它没有任何参数。构造方法只能有new运算符调用。,四、finalize 方法,在根类java.land.Object中实现 对对象进行垃圾收集前

14、,系统自动调用 自己重写时需要调用父类的finalize()方法, protected void finalize() throws throwable /clean up code for this class super.finalize(); ,类实例化可生成对象 对象通过消息传递来进行交互 消息传递即激活指定的某个对象的方法以改变其状态或让它产生一定的行为。 对象的生命周期: 生成 使用 清除,一、对象概述,4.2 对象,二、对象的生成,包括声明、实例化和初始化 格式: type objectName=new type(paramlist); (1)声明:type objectName

15、 声明并不为对象分配内存空间,而只是分配一个引用空间; (2)实例化:运算符new为对象分配内存空间,它调用对象的构造方法,返回引用;一个类的不同对象分别占据不同的内存空间。,(3)生成:执行构造方法,进行初始化;根据参数不同调用相应的构造方法。 对象的引用指向一个中间的数据结构,它存储有关数据类型的信息以及当前对象所在的堆的地址,而对于对象所在的实际的内存地址是不可操作的,这就保证了安全性。,引用变量的赋值 请考虑下列代码片段: int x = 7; int y = x; String s = “Hello”; String t = s;,将变量t 重新定义,则新的对象World 被创建,而

16、 t 引用这个对象。上述过程被描述如下:,三、对象的使用,通过运算符“.”可以实现对变量的访问和方法的调用; 变量和方法的访问可以通过设定访问权限来限制其它对象对它的访问;,调用对象的变量,格式:objectReference.variable objectReference是一个已生成的对象,也可以是能生成对象的表达式 例:p.x= 10; tx=new Point( ).x;,调用对象的方法,格式:objectReference.methodName(paramlist); 例如:p.move(30,20); new Point( ).move(30,20); 使用方法的返回值 if (p.equal(20,30) /statements

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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