开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象

上传人:E**** 文档编号:89520411 上传时间:2019-05-26 格式:PPT 页数:19 大小:140KB
返回 下载 相关 举报
开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象_第1页
第1页 / 共19页
开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象_第2页
第2页 / 共19页
开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象_第3页
第3页 / 共19页
开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象_第4页
第4页 / 共19页
开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象》由会员分享,可在线阅读,更多相关《开发基于Java语言的银行卡模拟系统 教学课件 ppt 作者 孙华林第四章 第四章 在Bank系统中引入类和对象(19页珍藏版)》请在金锄头文库上搜索。

1、开发基于Java语言的银行卡模拟系统,教师:孙华林,第4章 在Bank系统中引入类和对象,技能目标 掌握类和对象的创建 理解并掌握类中变量和方法的定义和使用 掌握构造方法的特征,构造方法的作用 理解并掌握方法重载,上机任务 使用面向接口编程技术继续升级Bank系统: 在项目中理解面向接口编程的思想 会根据需求的描述,设计和实现相应的类结构,并创建相应的类 会根据需求的描述,用适合的属性和方法来描述类 能够使用构造方法,以及构造方法的重载 能够创建对象,并且会使用对象的变量和方法 能够掌握类之间的方法调用 能够掌握this关键的使用方法,第4章 在Bank系统中引入类和对象,开发基于java语言

2、的银行卡模拟系统,4.1 类以及对象,在实际生活中,我们每时每刻都与“对象”在打交道。我们用的钢笔,骑的自行车,乘的公共汽车等。例如我们经常见到的卡车、公共汽车、轿车等都会涉及以下几个重要的物理量:可乘载的人数、运行速度、发动机的功率、耗油量、自重、轮子数目等。另外,还有几个重要的功能:加速功能、减速功能、刹车、转弯功能等。我们也可以把这些功能称作是他们具有的方法,而物理量是它们的状态描述。在现实生活中,我们用这些共有的属性和功能给出一个概念机动车类。一辆具体的轿车就是机动车类的一个具体对象。 类是Java的核心和本质。它是Java语言的基础,因为类定义了对象的本性。既然类是面向对象程序设计J

3、ava语言的基础,因此,你想要在Java程序中实现的每一个概念都必须封装在类以内。其实从书的一开始开始我们就使用类了。当然,使用的都是非常简单的类。在这些类中只有一个main( )方法,用它来表明Java句法的基础。也许理解类的最重要的事情就是它定义了一种新的数据类型。一旦定义后,就可以用这种新类型来创建该类型的对象。这样,类就是对象的模板,而对象就是类的一个实例。,开发基于java语言的银行卡模拟系统,4.1 类以及对象,4.1.1 类的创建 在Java中,使用关键字class来创建类,类定义的通用格式如下所示: class classname type variable1; type va

4、riable2; / . type variableN; type methodname1(parameter-list) / body of method type methodname2(parameter-list) / body of method / . type methodnameN(parameter-list) / body of method ,开发基于java语言的银行卡模拟系统,4.1 类以及对象,类声明之后的一对大括号”“,”以及它们之间的内容称做类体。类体的内容由两部分构成:一部分是变量的定义,其中type是变量的类型,variable是变量名称,类中的变量用来描述

5、类的属性;另一部分是方法的定义,其中type是方法的返回类型,methodname是方法名,方法名后面的”(”)”里面的parameter-list是方法的参数表,关于方法的定义我们在之后的章节中会详细描述,方法是用来描述类的功能。 在类中,数据或变量被称为实例变量,代码包含在方法内。定义在类中的方法和实例变量被统称为类的成员。在大多数类中,实例变量被定义在该类中的方法操作和存取。这样,方法决定该类中的数据如何使用。定义在类中的变量被称为实例变量,这是因为类中的每个实例(也就是类的每个对象)都包含它自己对这些变量的拷贝。这样,一个对象的数据是独立的且是唯一的。 4.1.2 类的变量和方法 1类

6、中的变量 类中的变量分为两种,变量定义部分所定义的变量被称为类的成员变量;在方法体中定义的变量和方法的参数被称为局部变量。例如,在示例4-1中,wheelNum,power,personNum,speed,这4个变量是成员变量,在整个类中都可以被访问。但是对于变量s1和s2来说就是局部变量,局部变量只在定义它的方法内有效。,图3-3 二维数组(4行5列)的概念性表示,开发基于java语言的银行卡模拟系统,4.1 类以及对象,2类中的方法 方法的定义包括两部分:方法声明和方法体。一般格式为: 方法声明部分 方法体的内容 (1)方法声明 最基本的方法声明包括方法名和方法的返回类型,如 float

7、area() /方法体的内容 方法返回的数据的类型可以是任意的Java 数据类型,当一个方法不需要返回数据时,返回类型必须是void。很多的方法声明中都给出方法的参数,参数是用逗号隔开的一些变量声明。方法的参数可以是任意的Java数据类型。方法的名字必须符合标识符规定。在给方法起名字时应遵守良好的习惯:名字如果使用拉丁字母,首写字母使用小写。如果由多个单词组成,从第2个单词开始的其他单词的首写字母使用大写。,开发基于java语言的银行卡模拟系统,4.1 类以及对象,4.1.3 对象的创建 创建一个对象包括对象的声明和为对象分配内存两个步骤。 1对象的声明 一般格式为 类的名字 对象名字; 如:

8、Box myBox; 这里Box是一个类的名字,myBox是我们声明的对象的名字。 2为声明的对象分配内存 使用new运算符和类的构造方法为声明的对象分配内存,如在案例5-2中,用下面的语句来声明一个Box类型的对象:Box mybox = new Box(); new运算符动态地为一个对象分配地址。它的通用格式如下: classname class-var = new classname( ); 其中,class-var是所创建类类型的变量。classname 是被实例化的类的名字。类的后面跟的圆括号指定了类的构造函数。如果一个类没有显式的定义它自己的构造函数,那么Java将自动地提供一个默

9、认的构造函数。,开发基于java语言的银行卡模拟系统,4.1 类以及对象,package czmec.java.ch04 class Box / 盒子的长,宽,高 double width;double height; double depth; / 用于计算盒子的容积 void volume() System.out.print(“Volume is “); System.out.println(width * height * depth); / 定义一个名为BoxDemo的类,在该类中创建Box类的对象 class BoxDemo1 public static void main(Str

10、ing args) Box mybox = new Box();/ 用new关键字创建对象 / 为新建的Box对象的长,宽,高赋值 mybox.width = 10; mybox.height = 20; mybox.depth = 15; mybox.volume(); ,开发基于java语言的银行卡模拟系统,4.1 类以及对象,运行结果如图 : 用new关键字创建了对象之后,该对象就包含了它自己的由类定义的每个实例变量的拷贝。 要访问这些变量,需要使用点号“.”运算符。点号运算符(dot operator)将对象名和成员名连接起来。例如,要将mybox的width变量赋值为100,使用下面

11、的语句:mybox.width = 100;该语句告诉编译器对mybox对象内包含的width变量拷贝的值赋为100。通常情况下,你可以使用点号运算符来访问一个对象内的实例变量和方法。,开发基于java语言的银行卡模拟系统,4.2 构造方法,如果要为基本类型的变量赋初始值的话,非常简单,例如,int a=5;但是要为对象赋初始值却很麻烦,因为一个对象可能含有许多个变量,例如,示例4-3中的类Box,含有三个变量,也有些个类,它们有成百上千个变量,如果你在每创建一个对象时都要一一的为它们赋值将会非常麻烦,因此,我们引入了构造方法。Java允许对象在他们被创造时初始化自己,也就是为对象中的各个变量

12、赋初始值,这种自动的初始化是通过使用构造函数来完成的。构造方法有两个特征: (1)方法名与类名相同 (2)没有返回类型 示例4-4 在示例4-4中,代码414行定义了一个名为Box2的类,该类有3个属性,2个构造方法,1个计算体积的普通方法。第2946行又定义了一个名为BoxDemo2的类,在这个类中的第32,33,34行分别创建了3个Box2类的对象。3844行,分别计算这三个不同盒子的体积,并把结算结果打印出来。在这个示例中用到了两种不同的构造方法,第一种是无参数的构造方法,另外一种是带参数的构造方法;这两种构造方法形式上不同,但作用是一样的。,开发基于java语言的银行卡模拟系统,4.2

13、 构造方法,1无参数的构造方法 一旦定义了构造方法,在对象创建后,在new运算符完成前,构造函数立即被系统自动调用。在示例4-4中,当mybox1和mybox2被创建时,它们两个都被Box构造方法初始化。因为构造方法将所有的盒子赋为一样的尺寸,长、宽、高都是10,mybox1和mybox2将有一样的体积。在Box2( )内的println( )语句仅仅是为说明的缘故。大多数构造方法的功能不显示任何东西,他们仅简单地初始化一个对象。 2带参数的构造方法 在案例4-4中,第34行:Box2 mybox3 = new Box2(10.0,20.0,30.0)。 当new创建对象时,值10,20,30

14、传递到Box2(double width,double height,double depth)构造函数方法中去。这样,实例mybox3 中的width、height、depth将分别将被赋予10、20、30。 3this关键字 有时一个方法需要引用调用它的对象。为此,Java定义了this这个关键字。this可以在引用当前对象的所有方法内使用。也就是,this总是调用该方法对象的一个引用。你可以在当前类的类型所允许对象的任何地方将this作为一个引用。 例如:在示例4-4中,代码1820行,开发基于java语言的银行卡模拟系统,4.2 构造方法, this.width= width; thi

15、s.height=height; this.depth=depth; 为了区分实例变量和局部变量,用到了this关键字,this.width指实例变量width,以区分参数width。,开发基于java语言的银行卡模拟系统,4.3 方法重载,在实际的编程活动中,我们经常会碰到这样的情况,要分别计算两个整数和两个小数的和,通常需要2个不同的方法用于分别计算整数和小数的和,例如sum1(int a,int b),sum2(double a,doub le b),这个两个方法的参数类型不一样,但是这2个方法体的内容是一样的。我们通常会为取方法名而发愁,而方法重载可以帮助解决这个问题。 在Java中,

16、同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded),这个过程称为方法重载。方法重载是Java实现多态性的一种方式。当一个重载方法被调用时,Java用参数的类型和(或)数量来表明实际调用的重载方法的版本。因此,每个重载方法的参数的类型和(或)数量必须是不同的。虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。当Java调用一个重载方法时,参数与调用参数匹配的方法被执行。方法重载的代码示例如示例4-5所示。 示例4-5 在示例4-5中第2行和第6行,定义两个名字均为sum的方法,但是他们的返回类型和参数表却不相同,这样这个两个方法就构成了重载。在13行的oo.sum(2,3)调用的是参数为整数的sum方法,而第14行的oo.sum(7.7,8.8)调用的则是参数为double类型的sum方法

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

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

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