单元2_任务二 借书卡程序设计_第1页
单元2_任务二 借书卡程序设计_第2页
单元2_任务二 借书卡程序设计_第3页
单元2_任务二 借书卡程序设计_第4页
单元2_任务二 借书卡程序设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、 Java Java 程序设计程序设计单元二:面向对象程序设计单元二:面向对象程序设计 Java Java 程序设计程序设计 知识目标 类的方法组成部分; 定义和使用类的方法; 变量作用域; 定义包和导入包的关键字; 构造方法实现对象成员的初始化; 方法重载; 对构造方法进行重载 。 能力目标 会定义和使用类的方法; 能够理解变量作用域; 会创建包组织Java工程; 能够掌握构造方法; 能够掌握方法重载 。 Java Java 程序设计程序设计4任务陈述任务陈述123知识准备知识准备任务实施任务实施任务拓展任务拓展任务实训任务实训5 Java Java 程序设计程序设计任务描述:任务描述: 借

2、书卡是学生日常生活重要组成部分。每张借书卡信息包含账号、持卡人姓名、身份证号码、地址、已借书数、可借书数、本次借书数、本次还书数。使用借书卡还可以借书、还书和查询。要求:根据持卡人不同操作,显示不同信息。当借书操作后,显示本次借书数及已借书数;当还书操作时,显示本次还书数和已借书数。 运行结果:运行结果: Java Java 程序设计程序设计 2.4类的方法类的方法2.4.1定义类的方法定义类的方法Java 类中方法的声明采用以下格式:访问修饰符访问修饰符返回值类型返回值类型 方法名称方法名称 (参数列表参数列表) 方法体方法体1. 返回值类型:返回值类型:表示方法返回值的类型。如果方法不返回

3、任何值,它必须声明为 void(空)。对于有返回值的方法,方法中一定有return语句,方法的返回值类型和return语句后面的类型一样。例如,如果一个方法中含有代码 return “aaaa”;那么包含该句的方法返回值是字符型。接收方法返回值的变量也必须与指定方法返回值的类型相兼容。2. 方法名称:方法名称:可以是任何合法标识符,但具有意义,第一个字母小写。3. 参数列表:参数列表:允许将参数值传递到方法中。列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符,也称之为形参。 Java Java 程序设计程序设计 2.1.2 2.1.2 使用类的方法使用类的方法 对象创建以后,使用“.

4、”操作符实现对其方法调用,方法中的局部变量被分配内存空间,方法执行完毕,局部变量即刻释放内存。 1. 1. 无参方法的调用无参方法的调用 类的方法在使用时一般要先创建类的对象,再通过对象调用方法。 例如,定义Person类的对象zhangsan :Person zhangsan =new Person(); 然后通过对象调用类的方法。例如调用学习方法: zhangsan.study();/study方法返回值为String类型 如果需要利用study()方法的返回值,可以将返回结果赋给同一类型的变量。例如: String s1= zhangsan.study(); Java Java 程序设计

5、程序设计2. 2. 有参方法的调用有参方法的调用 同样在定义了类的对象后调用,并需要传入实际的参数,此时的参数称为实际参数,简称实参。实参必须与方法定义中的形参一致,所谓的一致是要求参数个数、参数类型、参数的排列顺序一致参数个数、参数类型、参数的排列顺序一致。 例如,定义Person类的对象zhangsan,通过对象调用类的play方法,play方法中含有一个String类型的变量:zhangsan.play(“football”); /对象名. play方法 同样如果需要利用方法的返回值,可以将返回结果赋给同一类型变量。 Java Java 程序设计程序设计3. 3. 静态方法的调用静态方法

6、的调用 静态方法的调用无需定义对象,可以通过类名直接使用,我们也称这种方法为类方法。定义格式:定义格式: public static 返回值返回值 方法名方法名(参数列表参数列表) 调用格式:调用格式: 类名类名.方法名方法名(实参实参1,实参实参2,); 例如,在类Person中定义一个静态方法eat():public static void eat() 那么,静态方法的调用: Person. eat(); 注意:注意:静态方法内部只能调用静态方法和静态变量。 【实例【实例2-2】计算立方体的体积程序设计】计算立方体的体积程序设计 Java Java 程序设计程序设计 2.5 构造方法构造方

7、法 创建类的对象时,使用new关键字和一个与类名相同的方法来完成,这个方法是在实例化过程中被调用的,称之为构造方法。构造方法区别于普通的方法,有几个明显的特点: 它的名字必须与它所在的类的名字完全相同。 不返回任何数据类型,也不需要使用void声明。 它的作用是创建对象并初始化成员变量。 在创建对象时,系统会自动调用类的构造方法。 构造方法一般都用 public来声明,这样才能在程序任意位置创建对象。 每个类至少有一个构造方法。如果不写构造方法,Java 将提供一个默认的不带参的方法体为空的构造方法。 Java Java 程序设计程序设计 格式:格式:访问权限访问权限 类名称类名称(参数参数1

8、,参数参数2,)/程序语句程序语句 ;/构造方法没有返回值构造方法没有返回值 注意:构造方法不能像成员方法那样直接被对象调用,只能在new运算符实例化对象时,被系统自动调用。 Java Java 程序设计程序设计构造方法分类构造方法分类构造方法根据参数进行了分类:无参构造方法和有参构造方法。无参构造方法和有参构造方法。1. 1. 无参构造方法无参构造方法 例如: public class People public People() /使用固定值初始化成员变量 那么在含有main方法的测试类中实例化People对象时: People p1= new People();注意:无参构造方法可以不写

9、,类中默认含有一个无参构造方法,并且该构造方法的方法体内没有语句。而使用默认值初始化对象成员变量,数值型变量初始为0,布尔型初始为false,字符型初始为“0”,字符串初始为null; Java Java 程序设计程序设计2. 2. 有参构造方法有参构造方法 例如: public class Peopleint age;String name; public People(int myAge,String myName) age=myAge; name=myName; 那么在含有main方法的测试类中实例化People对象时: People p1= new People(20,”zhangsa

10、n”);上面的实例化就可以看出是把成员变量进行了动态的赋值。注意:当定义了有参的构造方法后,无参构造方法将不再存在,如果还想使用无参的构造方法进行实例化对象,就需要显性的写出无参构造方法。 Java Java 程序设计程序设计 2.3 2.3 方法重载方法重载 2.3.1 2.3.1 方法重载的概念方法重载的概念 方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,所谓的不同是指:参数的个数不同,参数类型不同,参参数的个数不同,参数类型不同,参数的顺序不同数的顺序不同。返回类型不能用来区分重载的方法。在这种情况下,该方法就叫被重载了,这个过程称为方法的重载。当一个重载方法被调用时方

11、法名是一样的,因此Java用参数的类型、(或)数量、(或)顺序来选择实际调用的重载方法。例如:System.out.println();里面的println这个方法就是重载方法。注意:注意:方法的重载要使用恰当,当一个动作(方法)分别接受不同的指令(参数)产生不同的效果,可以使用。但过度的使用将会降低程序的可读性。参数不同是区分重载方法的关键因素,参数不同主要包括以下方面的不同:参数类型不同。例如:public void method(String s);public void method(int s);参数个数不同。例如:public void method(String s,int i)

12、;public void method(String s);参数顺序不同。例如:public void method(String s,int i);public void method(int i,String s); Java Java 程序设计程序设计【实例【实例2-4】求圆形的面积,要求用户输入任何类型的数据后都要能得到】求圆形的面积,要求用户输入任何类型的数据后都要能得到最终的面积值。最终的面积值。public class MethodOverloading final float PI=3.14; double calArea(double r) return PI * r * r

13、; float calArea (float r) return PI * r * r; float calArea(int r) return PI * r * r; folat calArea (String r) float i=Float.parseInt(r); return PI * r * r; 可以发现方法重载主要目的是为了满足在不同输入的情况下依然可以得到进行相同或相似的处理。在编程上有些麻烦,但是在使用性和灵活性得到了加强。由于实现了Java在编译时的方法的多种状态,所以有时也成为静态多态。 Java Java 程序设计程序设计构造方法重载构造方法重载不仅普通方法可以重载,

14、构造方法也可以重载。只要构造方法的参数个数不同,或是类型不同,便可定义多个名称相同的构造方法。【实例【实例2-52-5】利用构造函数重载创建对不同变量初始化的对象】利用构造函数重载创建对不同变量初始化的对象public class Rectangle double width; double length;Rectangle () /直接初始化为数值直接初始化为数值width = 1; length=5; Rectangle (double x)/把两个变量初始化为相同传入值把两个变量初始化为相同传入值 width = x;length =x; Rectangle (double w,doub

15、le len) /分别对两个属性初始化不同的值分别对两个属性初始化不同的值 width = w; length=len; Java Java 程序设计程序设计 2.6 变量的作用域变量的作用域变量声明的位置决定变量作用域。Java 变量的范围有四个级别:类级、对象实例级、方法级、块级。 类级变量类级变量又称全局级变量,在对象产生之前就已经存在,就是static 修饰的静态变量。 对象实例级对象实例级,就是成员变量,它可以使用在整个类和对象中。 方法级:方法级:就是在方法内部定义的变量,就是局部变量。 块级:块级:就是定义在一个块内部的变量,变量的生存周期就是这个块, 出了这个块就消失了,比如i

16、f、for语句的块。注意:后面两个级别变量作用域的判断只需要记住:在变量声明的地方找到离它最近的一对大括号就是它的作用域,出了这对大括号就不能用了。 Java Java 程序设计程序设计 2.5 2.5 定义包和导入包的关键字定义包和导入包的关键字包是Java提供的文件组织形式,采用类似于文件夹的形式。包提供了访问级别控制和命名空间管理。不同的包中允许出现相同名字的文件。1. 1. 定义包定义包格式:package .子包名1.子包名2.子包名n;例如:依照地域范围+制作人+功能分类 来定义包package .can.daopackage .can.dao2. 2. 导入包导入包 格式:pac

17、kage .子包名1.子包名2.类名|*; 例如:导入系统类库中的Date表示日期的类。 import java.util.Date;import java.util.Date; 注意:注意: 在Java中,java.lang包不需要使用import手动导入,系统自动位置导入,因此在该保内存放了很多常用的基础的类,例如Math。 Java Java 程序设计程序设计1. 1. 解决步骤解决步骤本任务中行为有借书、还书和查询。在BookCard类分别定义了3个方法borrow(int);TheReturn(int);query()。 打开Eclipse,创建BookCard类; 在类大括号内进行

18、属性定义; 在类的大括号内定义3个方法,表示借书、还书和查询; 在BookCard类的main方法中,创建一个BookCard类的对象; 利用创建的BookCard对象,使用对象名.方法的形式调用方法,完成具体的功能; Java Java 程序设计程序设计2.2.任务代码任务代码public class BookCard public void borrow(int cash) public void borrow(int cash) if (Remain = cash) Remain = Remain - cash;/省略输出语句public void TheReturn(int cash) public void TheReturn(int cash) Remain = Remain + cash;/省略输出语句public void query() public void query() System.out.println(可借书数 + Remain); Java Java 程序设计程序设计1. 任务拓展要求:任务拓展要求: 原任务中原任务中方法方法 borrow(int);TheReturn(int);query()都都没有返回值,现在改没有返回值,现在改为正确借书、还书

温馨提示

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

评论

0/150

提交评论