TP13 带参数的方法(一)ACCP 6.0 S1-1-使用Java理解程序逻辑 课件.ppt
带参数的方法(一),第十三章,写出如下代码的运行结果,public static void main(String args)for(int i=0;i 6;i+)System.out.print(i+,);while(+i 5)continue;System.out.print(i);,0,5,回顾与作业点评,预习检查,调用带参方法时,有哪些注意事项?为什么需要包?,本章任务,实现客户信息的添加和查询实现图形生成器实现模拟账户存取款功能,本章目标,会定义带参方法会使用带参方法会创建包组织Java工程,为什么要用带参数的方法,工作原理,新鲜桃汁,新鲜苹果汁,新鲜梨汁,输出三种果汁,如何使用带参数的方法3-1,定义带参数的方法调用带参数的方法,public class Zhazhi public String zhazhi(String fruit)String juice=fruit+汁;return juice;,/*调用zhazhi方法*/Zhazhi myZhazhi=new Zhazhi();String myFruit=苹果;String myJuice=myZhazhi.zhazhi(myFruit);System.out.println(myJuice);,参数列表:(数据类型 参数1,数据类型 参数2),调用方法,传递的参数要与参数列表一一对应,如何使用带参数的方法3-2,返回类型()/方法的主体,该方法允许被访问调用的权限范围,方法返回值的类型,public class StudentsBiz String names=new String30;public void addName(String name)/增加学生姓名public void showNames()/显示全部学生姓名,传送给方法的形参列表,一个形式参数,没有返回值,如何使用带参数的方法3-3,public static void main(String args)StudentsBiz st=new StudentsBiz();Scanner input=new Scanner(System.in);for(int i=0;i5;i+)System.out.print(请输入学生姓名:);String newName=input.next();st.addName(newName);st.showNames();,实参的类型、数量、顺序都要与形参一一对应,先实例化对象,再使用方法,调用带参数的方法,对象名.方法名(实参1,实参2,,实参n),实参列表,指导实现客户姓名添加和显示,训练要点:带参方法的定义带参方法的调用 需求说明:创建客户业务类,实现客户姓名的添加和显示 实现思路:1、创建CustomerBiz类2、创建带参方法addName()3、创建方法showNames()4、创建测试类难点指导:创建无返回值的带参方法,讲解需求说明,完成时间:25分钟,练习查找客户姓名,需求说明:根据需要,查找客户姓名,给出查找结果,完成时间:20分钟,提示:定义带参带返回值的方法public boolean search(String name),共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,可以设计一个方法来实现,通过传递两个参数(需要修改的姓名、新姓名)来实现,带两个参数的方法2-1,1、修改学生姓名,输入新、旧姓名,进行修改并显示是否修改成功,public class StudentsBiz String names=new String30;public boolean editName(String oldName,String newName)boolean find=false;/是否找到并修改成功标识/循环数组,找到姓名为oldName的元素,修改为newName for(int i=0;inames.length;i+)if(namesi.equals(oldName)namesi=newName;find=true;break;return find;,返回值类型,带有两个形参,返回结果:boolean类型,带两个参数的方法2-2,public class TestModify public static void main(String args)System.out.print(n请输入要修改的学生姓名:);String oldname=input.next();System.out.print(n请输入新的学生姓名:);String newname=input.next();System.out.println(n*修改结果*);if(st.editName(oldname,newname)System.out.println(找到并修改成功!);else System.out.println(没找到该学生!);st.showNames();,根据返回值进行处理,传递两个实参,设计方法,通过传递三个参数(开始位置、结束位置,查找的姓名)来实现,带多个参数的方法2-1,2、指定查找区间,查找学生姓名并显示是否修改成功,public boolean searchName(int start,int end,String name)boolean find=false;/是否找到标识/指定区间数组中,查找姓名for(int i=start-1;iend;i+)if(namesi.equals(name)find=true;break;return find;,返回值类型,带有三个形参,返回结果:boolean类型,带多个参数的方法2-2,if(st.searchName(s,e,name)System.out.println(找到了!);elseSystem.out.println(没找到该学生!);,传递三个实参,/方法定义public void addName(String name)/方法体/方法调用对象名.addName(String 张三);,调用方法时不能指定实参类型!,常见错误4-1,对象名.addName(张三);,/方法定义public boolean searchName(int start,int end,String name)/方法体/方法调用String s=开始;int e=3;String name=张三;boolean flag=对象名.searchName(s,e,name);,形参和实参数据类型不一致!,常见错误4-2,/方法定义public boolean searchName(int start,int end,String name)/方法体/方法调用int s=1;int e=3;boolean flag=对象名.searchName(s,e);,形参和实参数量不一致!,常见错误4-3,/方法定义public boolean searchName(int start,int end,String name)/方法体/方法调用int s=1;int e=3;String name=张三;对象名.searchName(s,e,name);,调用方法后没有对返回值作任何处理!,常见错误4-4,练习实现图形生成器,需求说明:根据指定不同的行以及字符,生成不同的三角形,完成时间:20分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,为什么需要包,生活案例,文档分门别类,易于查找,不同内容的文档可以放在不同的 袋子中,拥有相同的名字,避免冲突,易于管理,为什么需要包,树形文件系统使用目录解决文件同名冲突问题如何存放两个同名的类而不冲突?,包,包解决类的同名问题,允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件,防止命名冲突,更好的保护类、属性和方法,如何创建包,package cn.jbit.classandobject;/声明包public class AccpSchool/public String toString()/,包名,使用package声明包,以分号结尾,如果有包的声明,一定作为Java源代码的第一条语句,包命名规范,包名由小写字母组成,不能以圆点开头或结尾包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:域名 包名后续部分依不同机构内部的规范不同而不同,package mypackage;,package net.javagroup.mypackage;,package net.javagroup.research.powerproject;,部门名,项目名,package.mypackage;,用Eclipse 创建包,使用Eclipse创建包的两种方法:分别创建包和类:创建项目创建包创建类创建类的过程中创建类所在的包创建项目创建包和类,包与目录的关系,创建好的包和Java源文件是如何存储的?创建包cn.jbit.classandobject,即创建了目录结构:cnjbitclassandobject,cn,jbit,classandobject,AccpSchool.java,HelloAccp.java,如何导入包,为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类,import java.util.*;/导入java.util包中所有类import cn.jbit.classandobject.AccpSchool;/导入指定包中指定类,关键字import并不陌生,import 包名.类名;,1、系统包:java.util2、自定义包:cn.jbit.classandobject,*:指包中的所有类AccpSchool:指包中的AccpSchool类,小结,AccpSchool.java位于cn.jbit.classandobject包中,HelloAccp.java位于demo包中,下面程序空缺部分需要填入代码吗?如果需要,是什么?,/添加代码2/添加代码3public class HelloAccp public static void main(String args)AccpSchool center=new AccpSchool();center.showMessage();,/添加代码1public class AccpSchool public void showMessage()System.out.println(“这是上海Accp中心。);,package cn.jbit.classandobject;,package demo;,import cn.jbit.classandobject.*;,声明包的含义:声明当前类所处的位置,导入包的含义:声明在当前类中要使用到的别的类所处的位置,练习模拟账户查询,实现存取款,需求说明:模拟银行账户业务,进行余额查询,实现存款和取款,完成时间:20分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,总结,形式参数和实际参数有什么区别?调用带参方法是有哪些注意事项?如何声明包?如何导入包?包与存储Java源文件的目录结构关系是什么?,作业,课后作业必做教员备课时在此添加内容选做教员备课时在此添加内容提交时间:xxx提交形式:xxx预习作业背诵英文单词教员备课时在此添加内容,