版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务二:借书卡程序设计单元二:面向对象程序设计教学目标知识目标类的方法组成部分;定义和使用类的方法;变量作用域;定义包和导入包的关键字;构造方法实现对象成员的初始化;方法重载;对构造方法进行重载。能力目标能会定义和使用类的方法;能会正确理解变量的作用域;能会使用包组织Java工程;运用构造方法完成对象实例化;能会正确区分和使用方法重载。教学内容4任务陈述123知识准备任务实施任务拓展任务实训5任务描述:借书卡是学生日常生活重要组成部分。每张借书卡信息包含账号、持卡人姓名、身份证号码、地址、已借书数、可借书数、本次借书数、本次还书数。使用借书卡还可以借书、还书和查询。要求:根据持卡人不同操作,显示不同信息。当借书操作后,显示本次借书数及已借书数;当还书操作时,显示本次还书数和已借书数。运行结果:1.任务陈述2.知识准备2.4类的方法2.4.1定义类的方法Java类中方法的声明采用以下格式:[访问修饰符]<修饰符>返回值类型方法名称([参数列表]){方法体}1.返回值类型:表示方法返回值的类型。如果方法不返回任何值,它必须声明为void(空)。对于有返回值的方法,方法中一定有return语句,方法的返回值类型和return语句后面的类型一样。例如,如果一个方法中含有代码return“aaaa”;那么包含该句的方法返回值是字符型。接收方法返回值的变量也必须与指定方法返回值的类型相兼容。2.方法名称:可以是任何合法标识符,但具有意义,第一个字母小写。3.参数列表:允许将参数值传递到方法中。列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符,也称之为形参。2.知识准备2.1.2使用类的方法对象创建以后,使用“.”操作符实现对其方法调用,方法中的局部变量被分配内存空间,方法执行完毕,局部变量即刻释放内存。1.无参方法的调用类的方法在使用时一般要先创建类的对象,再通过对象调用方法。
例如,定义Person类的对象zhangsan: Personzhangsan=newPerson();然后通过对象调用类的方法。例如调用学习方法:zhangsan.study();//study方法返回值为String类型如果需要利用study()方法的返回值,可以将返回结果赋给同一类型的变量。例如:Strings1=zhangsan.study();2.知识准备2.有参方法的调用同样在定义了类的对象后调用,并需要传入实际的参数,此时的参数称为实际参数,简称实参。实参必须与方法定义中的形参一致,所谓的一致是要求参数个数、参数类型、参数的排列顺序一致。
例如,定义Person类的对象zhangsan,通过对象调用类的play方法,play方法中含有一个String类型的变量:zhangsan.play(“football”); //对象名.
play方法
同样如果需要利用方法的返回值,可以将返回结果赋给同一类型变量。2.知识准备3.静态方法的调用静态方法的调用无需定义对象,可以通过类名直接使用,我们也称这种方法为类方法。
定义格式:[public]static返回值方法名([参数列表]){…}
调用格式:类名.方法名(实参1,实参2,……);
例如,在类Person中定义一个静态方法eat(): publicstaticvoideat(){ …… }那么,静态方法的调用:Person.eat();
注意:静态方法内部只能调用静态方法和静态变量。
【实例2-2】计算立方体的体积程序设计2.知识准备2.5构造方法创建类的对象时,使用new关键字和一个与类名相同的方法来完成,这个方法是在实例化过程中被调用的,称之为构造方法。构造方法区别于普通的方法,有几个明显的特点:它的名字必须与它所在的类的名字完全相同。不返回任何数据类型,也不需要使用void声明。它的作用是创建对象并初始化成员变量。在创建对象时,系统会自动调用类的构造方法。构造方法一般都用public来声明,这样才能在程序任意位置创建对象。每个类至少有一个构造方法。如果不写构造方法,Java将提供一个默认的不带参的方法体为空的构造方法。格式:
[访问权限]类名称([参数1,参数2,……]){ //程序语句; //构造方法没有返回值 }
注意:构造方法不能像成员方法那样直接被对象调用,只能在new运算符实例化对象时,被系统自动调用。2.知识准备2.知识准备构造方法分类构造方法根据参数进行了分类:无参构造方法和有参构造方法。1.无参构造方法
例如:publicclassPeople{ publicPeople(){ ……//使用固定值初始化成员变量}}
那么在含有main方法的测试类中实例化People对象时:Peoplep1=newPeople();注意:无参构造方法可以不写,类中默认含有一个无参构造方法,并且该构造方法的方法体内没有语句。而使用默认值初始化对象成员变量,数值型变量初始为0,布尔型初始为false,字符型初始为“\0”,字符串初始为null;
2.知识准备2.有参构造方法
例如:publicclassPeople{ intage; Stringname; publicPeople(intmyAge,StringmyName){ age=myAge;name=myName;}} 那么在含有main方法的测试类中实例化People对象时:Peoplep1=newPeople(20,”zhangsan”);上面的实例化就可以看出是把成员变量进行了动态的赋值。注意:当定义了有参的构造方法后,无参构造方法将不再存在,如果还想使用无参的构造方法进行实例化对象,就需要显性的写出无参构造方法。
2.知识准备2.3方法重载2.3.1方法重载的概念方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,所谓的不同是指:参数的个数不同,参数类型不同,参数的顺序不同。返回类型不能用来区分重载的方法。在这种情况下,该方法就叫被重载了,这个过程称为方法的重载。当一个重载方法被调用时方法名是一样的,因此Java用参数的类型、(或)数量、(或)顺序来选择实际调用的重载方法。例如:System.out.println();里面的println这个方法就是重载方法。注意:方法的重载要使用恰当,当一个动作(方法)分别接受不同的指令(参数)产生不同的效果,可以使用。但过度的使用将会降低程序的可读性。参数不同是区分重载方法的关键因素,参数不同主要包括以下方面的不同:参数类型不同。例如:publicvoidmethod(Strings);publicvoidmethod(ints);参数个数不同。例如:publicvoidmethod(Strings,inti);publicvoidmethod(Strings);参数顺序不同。例如:publicvoidmethod(Strings,inti);publicvoidmethod(inti,Strings);2.知识准备【实例2-4】求圆形的面积,要求用户输入任何类型的数据后都要能得到最终的面积值。publicclassMethodOverloading{ finalfloatPI=3.14; doublecalArea(doubler){ returnPI*r*r; } floatcalArea(floatr){ returnPI*r*r; } floatcalArea(intr){ returnPI*r*r; } folatcalArea(Stringr){ floati=Float.parseInt(r); returnPI*r*r;
}}可以发现方法重载主要目的是为了满足在不同输入的情况下依然可以得到进行相同或相似的处理。在编程上有些麻烦,但是在使用性和灵活性得到了加强。由于实现了Java在编译时的方法的多种状态,所以有时也成为静态多态。2.知识准备构造方法重载不仅普通方法可以重载,构造方法也可以重载。只要构造方法的参数个数不同,或是类型不同,便可定义多个名称相同的构造方法。【实例2-5】利用构造函数重载创建对不同变量初始化的对象publicclassRectangle{ doublewidth; doublelength; Rectangle(){//直接初始化为数值 width=1; length=5; }
Rectangle(doublex){//把两个变量初始化为相同传入值
width=x; length=x; }
Rectangle(doublew,doublelen){//分别对两个属性初始化不同的值
width=w;
length=len; }
}}2.知识准备2.6变量的作用域变量声明的位置决定变量作用域。Java变量的范围有四个级别:类级、对象实例级、方法级、块级。
类级变量又称全局级变量,在对象产生之前就已经存在,就是static
修饰的静态变量。
对象实例级,就是成员变量,它可以使用在整个类和对象中。
方法级:就是在方法内部定义的变量,就是局部变量。块级:就是定义在一个块内部的变量,变量的生存周期就是这个块,
出了这个块就消失了,比如if、for语句的块。注意:后面两个级别变量作用域的判断只需要记住:在变量声明的地方找到离它最近的一对大括号就是它的作用域,出了这对大括号就不能用了。2.知识准备2.5定义包和导入包的关键字包是Java提供的文件组织形式,采用类似于文件夹的形式。包提供了访问级别控制和命名空间管理。不同的包中允许出现相同名字的文件。1.定义包格式:package<顶层包名>[.子包名1][.子包名2]…[.子包名n];例如:依照地域范围+制作人+功能分类来定义包
package.can.dao2.导入包
格式:package<顶层包名>[.子包名1][.子包名2]…[.类名|*];
例如:导入系统类库中的Date表示日期的类。
importjava.util.Date;
注意:在Java中,java.lang包不需要使用import手动导入,系统自动位置导入,因此在该保内存放了很多常用的基础的类,例如Math。1.解决步骤本任务中行为有借书、还书和查询。在BookCard类分别定义了3个方法borrow(int);TheReturn(int);query()。打开Eclipse,创建BookCard类;在类大括号内进行属性定义;在类的大括号内定义3个方法,表示借书、还书和查询;在BookCard类的main方法中,创建一个BookCard类的对象;利用创建的BookCard对象,使用对象名.方法的形式调用方法,完成具体的功能;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学大三(康复治疗学)康复工程技术综合测试试题及答案
- 地下车库泛霜处理专项施工方案
- 2026燃料电池全产业链技术突破及商业化应用前景分析
- 2026中国智能停车场管理系统行业市场研究供需平衡投资评估发展策略规划
- 2026中国太阳能路灯生产企业市场分析供需调研投资评估规划发展前景总报告
- 2026生物质能压缩成型设备行业市场现状供需分析及投资评估规划分析研究报告
- 电厂安规试题及答案
- 数据泄露风险防范技术合作合同协议
- 舆情监控平台运营合同2026
- 产品组合代理合作协议书
- Q-SY 01074-2024 陆上节点地震数据采集质量控制规范
- 第四届福建省水产技术推广职业技能竞赛-水生物病害防治员备赛题库(含答案)
- 特种设备重大事故隐患判定准则
- 2024年北京人力资源市场工资指导价位
- 汕尾市市区教育设施布局专项规划(2018-2035年)
- 合伙人协议合同
- 太阳能平板式集热器
- (高清版)WST 227-2024 临床检验项目标准操作程序编写要求
- 形成性评价在消化内科住院医师规范化培训中的意义初探
- 《基因编辑CRISPR技术原理及应用课件》
- HSE管理体系文件
评论
0/150
提交评论