收藏 分销(赏)

方法的参数传递.ppt

上传人:仙人****88 文档编号:14192977 上传时间:2026-07-09 格式:PPT 页数:14 大小:418KB 下载积分:10 金币
下载 相关 举报
方法的参数传递.ppt_第1页
第1页 / 共14页
方法的参数传递.ppt_第2页
第2页 / 共14页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,方法的参数传递,参数传递,参数传递分两种类型:,参数,按值传递,参数,按引用传递,参数按值传递参数类型?,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,参数的引用传递,当一个方法的参数是对象或数组时,我们称这种传递方式为引用传递。,那么,什么是引用呢?,简单类型与引用,(,对象)类型,对简单类型变量来说,对应内存所存储的值是简单类型的,数值,。,对引用类型的变量来说,它的值是一个引用,是,对象的存储地址,。,Java,中的对象和数组都属于引用类型。,简单类型,int,i,1 i,1,对象类型,Circle c=new Circle(5)c,引用,c,:Circle,radius,=5,简单类型变量和对象类型变量的区别,变量赋值,简单类型变量,一个变量的,真实值,赋给另一个变量。,对于对象类型变量,一个变量的,引用,赋给另一个变量。,对象类型赋值,c1,c2,赋值前:赋值后:,引用,引用,c1,c2,c,:Circle,radius,=5,c,:Circle,radius,=9,引用,引用,c1,c2,关于引用和对象的一种通俗的解释:,引用和对象的关系,,可以想象成,电视遥控板(引用)和电视机(对象)的关系,。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(引用),再由遥控板自己操纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个引用,并不表示必须有一个对象同它连接。可创建一个,Circle,引用:,Circle c;,但这里创建的只是引用,并不是对象。这里,c,实际并未与任何东西连接(即“没有电视机”)。,c,new Circle,();,这样,c,引用和一个圆对象相连接。(遥控板和电视机连接),给方法传递对象,传递简单类型的变量和传递对象有重要区别,传递简单类型变量就是将其值传递给形参。改变方法内部的参数不会影响方法外部的变量值。这种传递称为,值传递,。,传递对象意味将对象的引用传递给形参。方法体内的局部对象的任何变化都会影响作为参数传递的原对象。这种传递称为,引用传递,。,以引用类型作为参数,假设有一个盒子类,Box,,定义如下:,public,class,Box,String color;,Box(String,color),this,.color,=color;,public,String,toString,(),return,color;,以引用类型作为参数,public,class,TestBox,static,void,changeColor(Box,b1),b1.color=green;,public,static,void,main(String,args,),Box,redBox,=,new,Box(red,);,System.,out,.println,(,红盒子是,+,redBox.color,+,色的。,);,changeColor,(redBox,);,System.,out,.println,(,红盒子是,+,redBox.color,+,色的。,);,调用了,changeColor,方法后,盒子的属性,color,被改变。,
展开阅读全文

开通  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 

客服