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