方法的参数传递
参数传递
参数传递分两种类型:
①参数按值传递
②参数按引用传递
参数按值传递-参数类型?
class TestMax {
public static void main(String[ ] args){
int i = 5;
int j = 2;
int num3 = max(i, j);
("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)。
无论方法中的形参怎么变化,实参并不会改变!!这是参数按值传递的最大特色!
,它包含一个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);
(“num1等于”+ num1+ “ num2等于" + num2);
}
static void swap(int n1, int n2){
int temp = n1;
n1 = n2;
n2 = temp;
(“ 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
方法的参数传递 来自淘豆网m.daumloan.com转载请标明出处.