使用java理解程序逻辑_第1页
使用java理解程序逻辑_第2页
使用java理解程序逻辑_第3页
使用java理解程序逻辑_第4页
使用java理解程序逻辑_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第十四章带参数的方法

预习检查调用带参方法时,有哪些注意事项?名词解释:形参、实参一个方法可以有多少个参数,多少个返回值?包的作用是什么?请说出创建包的关键字和导入包的关键字集中测试2/41回顾与作业点评无参方法有哪几个组成部分?调用无参方法的两种形式是什么?方法的返回值使用什么关键字?点评作业的提交情况和共性问题

提问3/41作业点评本章任务实现客户信息的添加和显示修改客户姓名对客户姓名排序实现模拟账户存取款功能4/41本章目标会定义带参方法会使用带参方法会创建包组织Java工程5/41为什么要用带参数的方法工作原理新鲜桃汁新鲜苹果汁新鲜梨汁输出三种果汁6/41如何使用带参数的方法3-1定义带参数的方法调用带参数的方法publicclassZhazhiJi{

publicStringzhazhi(Stringfruit){Stringjuice=fruit+"汁";returnjuice;}}/*调用zhazhi方法*/ZhazhiJimyZhazhiji=newZhazhiJi();StringmyFruit="苹果";StringmyJuice=myZhazhiji.zhazhi(myFruit);System.out.println(myJuice);参数列表:(数据类型参数1,数据类型参数2…)调用方法,传递的参数要与参数列表一一对应7/41如何使用带参数的方法3-2<访问修饰符>返回类型<方法名>(<形式参数列表>){ //方法的主体}该方法允许被访问调用的权限范围方法返回值的类型publicclassStudentsBiz{ String[]names=newString[30];

publicvoidaddName(Stringname){

//增加学生姓名

} publicvoidshowNames(){//显示全部学生姓名 }}传送给方法的形参列表一个形式参数没有返回值语法示例定义带参数的方法8/41如何使用带参数的方法3-3publicstaticvoidmain(String[]args){

StudentsBizst=newStudentsBiz();Scannerinput=newScanner(System.in);for(inti=0;i<5;i++){System.out.print("请输入学生姓名:");StringnewName=input.next();

st.addName(newName);}st.showNames();

}实参的类型、数量、顺序都要与形参一一对应先实例化对象,再使用方法调用带参数的方法对象名.方法名(参数1,参数2,……,参数n)实参列表语法示例演示示例1:带一个参数的方法9/41带多个参数的方法2-1设计方法,通过传递三个参数(开始位置、结束位置、查找的姓名)来实现在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功问题分析10/41

publicbooleansearchName

(intstart,intend,Stringname){ booleanfind=false;//是否找到标识 //指定区间数组中,查找姓名 for(inti=start-1;i<end;i++){

if(names[i].equals(name)){

find=true;

break;

} } returnfind;}返回值类型带有三个形参返回结果:boolean类型带多个参数的方法2-2if(st.searchName(s,e,name)){ System.out.println("找到了!");}else{ System.out.println("没找到该学生!");}传递三个实参示例演示示例2:带多个参数的方法11/41//方法定义publicvoidaddName(Stringname){ //方法体}//方法调用对象名.addName(String"张三");常见错误4-1对象名.addName("张三");代码阅读注意调用方法时不能指定实参类型!!12/41//方法定义publicbooleansearchName(intstart,intend,Stringname){ //方法体}//方法调用Strings="开始";inte=3;Stringname="张三";booleanflag=对象名.searchName(s,e,name);常见错误4-2代码阅读注意形参和实参数据类型不一致!!13/41//方法定义publicbooleansearchName(intstart,intend,Stringname){ //方法体}//方法调用ints=1;inte=3;booleanflag=对象名.searchName(s,e);常见错误4-3代码阅读注意形参和实参数量不一致!!14/41//方法定义publicbooleansearchName(intstart,intend,Stringname){ //方法体}//方法调用ints=1;inte=3;Stringname="张三";对象名.searchName(s,e,name);常见错误4-4代码阅读注意调用方法后没有对返回值作任何处理!!15/41学员操作—客户姓名添加和显示2-1训练要点带参方法的定义带参方法的调用需求说明创建客户业务类,实现客户姓名的添加和显示指导讲解需求说明16/41学员操作—客户姓名添加和显示2-2实现思路创建CustomerBiz类创建带参方法addName(Stringname)创建方法showNames()创建测试类难点指导创建无返回值的带参方法指导完成时间:20分钟17/41学员操作—修改客户姓名需求说明修改学生姓名,输入新、旧姓名,进行修改并显示是否修改成功练习提示定义方法publicbooleaneditName(StringoldName,StringnewName)完成时间:20分钟18/41共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解19/41数组作为参数的方法2-1将5位学员的决赛成绩保存在数组中设计求平均成绩、最高成绩的方法,并把数组作为参数有5位学员参加了Java知识竞赛的决赛,输出决赛的平均成绩和最高成绩问题分析20/41publicdoublecalAvg(int[]scores){intsum=0;doubleavg=0.0;for(inti=0;i<scores.length;i++){sum+=scores[i];}avg=(double)sum/scores.length;returnavg;}返回值类型数组作为参数的方法2-2示例publicintcalMax(int[]scores){intmax=scores[0];for(inti=1;i<scores.length;i++){if(max<scores[i]){max=scores[i];}}returnmax;}int[]scores=newint[5];//保存比赛成绩//……doubleavgScore=st.calAvg(scores);intmaxScore=st.calMax(scores);数组参数调用方法演示示例3:数组作为参数21/41对象作为参数的方法2-1方式一:设计带四个参数(学号、姓名、年龄、成绩)的方法方式二:将学生学号、姓名、年龄、成绩封装在学生对象中,设计方法,以学生对象作为参数在实现了增加一个学生姓名的基础上,增加学生的学号、年龄和成绩,并显示这些信息,如何实现?问题分析经验可以将多个相关的信息封装成对象,作为参数传递,避免方法有太多的参数!!22/41classStudent{

publicintid;publicStringname;publicintage;publicintscore; publicvoidshowInfo(){ System.out.println(id+"\t"+name+"\t"+age+"\t"+score);}}学生类对象作为参数的方法2-2示例publicvoidaddStudent(Studentstu){for(inti=0;i<students.length;i++){if(students[i]==null){students[i]=stu;break;}}//……studentsBiz.addStudent(student1);studentsBiz.addStudent(student2);对象参数调用方法演示示例4:对象作为参数23/41学员操作—对客户姓名排序2-1训练要点带参方法的调用数组作为方法的参数需求说明编写方法,实现对客户姓名的排序指导讲解需求说明24/41学员操作—对客户姓名排序2-2实现思路利用数组存储学生姓名定义排序方法:sortNames(String[]names)创建测试类难点指导创建数组作为参数的方法调用数组作为参数的方法指导完成时间:15分钟25/41学员操作—改进客户信息的添加和显示需求说明实现添加客户信息客户信息包括:姓名、年龄、是否有会员卡练习提示定义Customer类在CustomerBiz类中声明客户对象数组定义添加客户的方法addCustomer(Customercust)定义显示信息的方法:showCustomers()

完成时间:20分钟26/41共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解27/41为什么需要包Windows树形文件系统文档分门别类,易于查找和管理使用目录解决文件同名冲突问题如何存放两个同名的类而不冲突?Sort.java插入排序Sort.java冒泡排序问题28/41包解决类的同名问题允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件防止命名冲突更好的保护类、属性和方法Sort.java包29/41如何创建包packagecn.jbit.classandobject;//声明包publicclassAccpSchool{//……publicStringtoString(){//……}}包名用package声明包,以分号结尾作为Java源代码第一条语句示例30/41包命名规范包名由小写字母组成,不能以圆点开头或结尾包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名如:包名后续部分依不同机构内部的规范不同而不同packagemypackage;package

cn.bdqn.mypackage;package

cn.bdqn.javagroup.powerproject;部门名项目名package.mypackage;×31/41用MyEclipse创建包使用MyEclipse创建包的两种方法分别创建包和类创建类的过程中创建类所在的包演示示例5:使用MyEclipse创建包和类32/41包与目录的关系创建好的包和Java源文件是如何存储的?创建包cn.jbit.classandobject

即创建了目录结构:cn\jbit\classandobjectcnjbitclassandobjectAccpSchool.javaHelloAccp.java问题33/41如何导入包为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类import

java.util.*;//导入java.util包中所有类import

cn.jbit.classandobject.AccpSchool;//导入指定包中指定类关键字import并不陌生import包名.类名;1.系统包:java.util2.自定义包:cn.jbit.classandobject*:指包中的所有类AccpSchool:指包中的AccpSchool类语法34/41小结AccpSchool.java位于cn.jbit.classandobject包中,HelloAccp.java位于demo包中,下面程序空缺部分需要填入代码吗?如果需要,是什么?//添加代码2//添加代码3publicclassHelloAccp{publicstaticvoidmain(String[]args){ AccpSchoolcenter= newAccpSchool();center.showMessage();}}//添加代码1publicclassAccpSchool{publicvoidshowMessage(){System.out.println("这是上 海Accp中心。");}}packagecn.jbit.classandobject;packagedemo;importcn.jbit.classandobject.*

温馨提示

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

评论

0/150

提交评论