收藏 分销(赏)

第4章方法A.ppt

上传人:仙人****88 文档编号:13323886 上传时间:2026-03-01 格式:PPT 页数:35 大小:569KB 下载积分:10 金币
下载 相关 举报
第4章方法A.ppt_第1页
第1页 / 共35页
第4章方法A.ppt_第2页
第2页 / 共35页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,4,章 方法,(P66-P75),讲稿和源代码下载地址,ftp:/,文件夹汤立浩目录下,本次课的学习目标,理解,和,使用,方法,创建,和,调用,方法,理解在方法中,参数的作用,向方法,传递基本类型参数,理解,方法重载,熟悉,Math,类,(,数学类,),重点,什么是方法?,方法,是为,执行一个操作,而,组合在一起的语句组,public static,int,max(,int,num1,int,num2),int result=0;,if(num1num2),result=num1;,else,result=num2;,return result;,max,方法由下列语句组成,赋值语句,I,f,语句,return,语句,方法结构,一般情况下,方法有下列结构:,修饰符,返回值类型,方法名(参数列表),/,方法体,方法结构,例如,max,方法:,public,static,int,max(int,num1,int,num2),int,result=0;,if(num1num2),result=num1;,else,result=num2;,return result;,方法头,public,和,static,都是修饰符,int,是返回值类型,max,是方法名,方法体,num1,和,num2,是参数,result,是返回值,其类型必须是,int,方法结构,1,、,方法头,包括方法的,修饰符、返回值类型、方法名和参数,。,2,、,方法可以返回一个值,。若方法不返回值,则返回值类型为关键字,void,。,3,、,方法可以有一个参数列表,,按方法的规范称为,形式参数,。,4,、,方法体,包括一个定义方法做什么的语句集合。,5,、,有返回值的方法,要求,有关键字,return,,执行,return,后方法终止,。,创建,max,方法,我们讲解了,方法的结构,,那么我们现在,创建一个,max,方法,它求两个整数中最大值,也就是,num1,整数和,num2,整数的最大值。,1,、创建一个方法头,static,int,max,(,int,num1,,,int,num2,),创建,max,方法,已经创建了一个方法头,现在,开始创建方法体,2,、说明并初始化变量,result,static,int,max,(,int,num1,,,int,num2,),int,result=0;,result,变量用来存储数字,num1,和,num2,的最大值,创建,max,方法,开始,判断,num1,整数和,num2,整数的最大值,,我们使用什么语句判断,num1,和,num2,谁大谁小?,2,、,使用,if,(,num1num2,)判断大小,static,int,max,(,int,num1,,,int,num2,),int,result=0;,if(num1 num2),判断,num1,和,num2,的大小,result,num1,;,num1,大于,num2,,变量,result,等于,num1,else,result,num2,;,num2,大于,num1,,变量,result,等于,num2,创建,max,方法,已经,判断出,num1,整数和,num2,整数的最大值,,现在,如何给调用者返回结果,?,3,、,使用,return,语句返回结果,static,int,max,(,int,num1,,,int,num2,),int,result=0;,if(num1 num2),result,num1,;,else,result,num2,;,return result;,变量,result,存储,num1,和,num2,的最大值,,return result,返回结果,调用,max,方法,我们,已经创建了,max,方法,,那么我们,如何调用它,?,我们看,TestMax.java,如何演示调用,max,方法的。,调用,max,方法,class,TestMax,public static void,main(String,args,),int,i=5;,int,j=2;,int,num3=,max(i,j);,System.out.println(The,maximum is +num3);,static,int,max(int,num1,int,num2),if(num1 num2),return num1;,else,return num2;,已经创建的,max,方法,在这里调用,max,方法,调用,max,方法的流程,public static void,main(String,args,),int,i=5;,int,j=2;,int,k=,max(i,j);,static,int,max(int,num1,int,num2),if(num1 num2),return num1;,else,return num2;,传递,i,的值,,num1,等于,5,程序执行到该处,传递,j,的值,,num2,等于,2,流程转向,max,方法,流程转回,调用,max,方法的流程,程序执行到,int,k=,max(i,j),时;,变量,i,的值传递给,max,方法中的,num1,,,num1,值等于,5,;变量,j,的值传递给,max,方法的,num2,,,num2,值等于,2,流程转向,max,方法,并开始执行,max,方法;,当执行到,max,方法中一个,return,语句后,,max,方法将程序控制还给调用者(在这里调用者是,main,方法),这时变量,k,的数值等于,num1,和,num2,中的最大者。,参数传递,参数传递分两种类型:,参数,按值传递,参数,按引用传递,本章我们只讲,参数按值传递;,下一章我们讲,按引用传递。,参数按值传递参数类型?,class,TestMax,public static void,main(String,args,),int,i=5;,int,j=2;,int,num3=,max(i,j);,System.out.println(The,maximum is +num3);,static,int,max(int,num1,int,num2),if(num1 num2),return num1;,else,return num2;,i,和,j,是,实际参数,,简称,实参,num1,和,num2,是,形式参数,,简称,形参,参数按值传递,在调用带参数的方法时,参数的值,复制到,方法中称为,按值传递(,pass by value,),。,无论方法中的,形参怎么变化,,,实参并不会改变,!这是,参数按值传递,的最大特色!,我们看一个例子,TestPassByValue.java,,它,包含一个,static void,swap(int,n1,int,n2),方法,,该方法的功能是,交换数字,n1,和数字,n2,的数值,。,参数按值传递,/,交换,n1,、,n2,的数值;如,n1,等于,1,,,n2,等于,2,,,/,执行该方法,,n1,等于,2,,,n2,等于,1,static void,swap(int,n1,int,n2),int,temp=n1;,n1=n2;,n2=temp;,变量,temp,等于,n1,的数值,n1,等于,n2,的数值,n2,等于,temp,的数值,因为,temp,等于,n1,的数值,所以,n2,也就等于,n1,的数值,参数按值传递,public class,TestPassByValue,public static void,main(String,args,),int,num1=1;,int,num2=2;,swap(num1,num2);,System.out.println(“num1,等于”,+num1+“num2,等于,+num2);,static void,swap(int,n1,int,n2),int,temp=n1;,n1=n2;,n2=temp;,System.out.println,(“n1,等于,”+n1+“n2,等于,+n2);,调用,swap,方法后,,num1,的还是等于,1,,,num2,的还是等于,2,,,swap,的执行对,num1,和,num2,的数值没有影响,交换,n1,和,n2,的数值,输出,n1,的数值等于,2,,,n2,的数值等于,1,实参的内容没有交换,swap,(num1,num2),按值传递,swap,(n1,n2),num1,num2,1,2,n1,n2,1,2,执行方法,swap,交换,2,1,1,n1,n2,temp,num1,num2,1,2,重载方法,前面的,max,方法,只能用于,int,型,。,现在,想求两个浮点数的最大值,,怎么办呢?,解决的方法就是,创建另一个带不同参数的同名方法,double,max(double mum1,double num2),if(num1num2),return num1;,else,return num2;,重载方法,这样我们就有,两个同名的,max,方法,但是参数是不同的,double,max(double mum1,double num2),if(num1num2),return num1;,else,return num2;,int max(int num1,int num2),if(num1 num2),return num1;,else,return num2;,同名,都是,max,参数类型不同,,一个是,double,,,另一个是,int,重载方法,如何调用,max,方法?,调用,max,方法时,,如果,实参是,int,型,,就调用,参数类型是,int,的,max,方法,;,如果,实参是,double,型,,就调用,参数类型是,double,的,max,方法,程序,TestMethodOverloading.java,演示重载方法,重载方法,public class,TestMethodOverloading,public static void,main(String,args,),System.out.println(“3,和,4,最大值是,+max(3,4);,System.out.println(“3.0,和,5.4,最大值是,+max(3.0,5.4);,static,int,max(int,num1,int,num2),static double,max(double,num1,double num2),调用,调用,重载方法,程序执行到,System.out.println(“3,和,4,最大值是,”+max(3,4),时,调用,static,int,max(int,num1,int,num2),程序执行到,System.out.println(“3,和,4,最大值是,”+max(3.0,5.4),时,调用,static double,max(double,num1,double num2),重载方法,能够调用一个是,int,值和一个,double,值的,max,方法吗?如,max(1,1.5),可以,,而且将,调用,double,max(double,num1,double num2),方法,而不是调用,int,max(int,num1,int num2),方法,Math,类(数学类),Math,类,包含,执行基本数学运算所需要的,常量和方法;,Math,类,包括:,PI,常量,E(,自然对数的底数,),常量,三角函数方法,指数函数方法,方法,min,、,max,、,abs,、,round,和,random,Math,类(数学类),三角函数方法包括:,sin(double,弧度,),cos(double,弧度,),tan(double,弧度,),acos(double,弧度,),asin(double,弧度,),atan(double,弧度,),如何求,30,度的,sin,值?,30,度转换为弧度,,等于,3.14159/18030,弧度。,所以,30,度的,sin,值为:,S,in,(,3.14159/18030,),Math,类(数学类),指数函数方法,exp(double,a),返回,e,的,a,次方(),log(double,a),返回,a,的自然对数(),pow(double,a,double b),返回,a,的,b,次方(),sqrt(double,a),返回平方根(),Math,类(数学类),方法,min,、,max,、,abs,、,round,和,random,max(a,b),返回,a,和,b,中的最大值,min(a,b),返回,a,和,b,中的最小值,abs(a,),返回,a,的绝对值,random(),返回一个随机数,随机数的范围是,0.0,1.0),,也就是在,0.0,到,1.0,之间,包括,0.0,。,Math,类(数学类),例子、计算平均值和标准差。,产生,10,个随机数,并利用下列公式计算这些数的平均值和标准差。,ComputeMeanDeviation.java,演示该例子,Math,类(数学类),1,、先产生,10,个随机数,number,Math.random,()*1000;,产生,0,到,1000,的随机数字,for,(,int,i,=1;i=10;i+),循环,10,次就可以产生,10,个随机数字,Math,类(数学类),如何求,double,sum=0.0;,for(,int,i=1;i=10;i+),number,Math.random,()*1000;,sum+=number;,求出了,Math,类(数学类),如何求,double,squareSum,=0.0;,for(,int,i=1;i=10;i+),number,Math.random,()*1000;,squareSum,+=,Math.pow(number,2);,求出了,Math,类(数学类),for(,int,i=0;i10;i+),number=(,int)Math.round(Math.random,()*1000);,sum+=number;,squareSum,+=,Math.pow(number,2);,double mean=sum/10;,double deviation=,Math.sqrt(squareSum,-mean)/(10-1);,求出了,求出了,求出了,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服