java中的方法参数

java中的方法参数

首先回顾一下程序设计语言中有关参数传递给方法的专业术语。
按值调用:表示方法接收的是调用者提供的值。
按引用调用:表示方法接收的是调用者提供的变量地址。
java中总是采用按值调用。也就是说,方法得到的都是参数值的一个拷贝。

按值调用

public class text {
	public static void main(String args[]){
	int a = 1;
	int b = 2;
	swap(a,b);
	System.out.println("a="+a);	
	System.out.println("b="+b);	
	}
	public static void swap(int i,int n) {
		int temp;
		temp = i;
		i = n;
		n = temp;
		return ;
	}
}

输出结果为a = 1,b = 2
为什么会这样呢?这就是按值引用,swap(a,b)只是将a,b的值传递给了swap方法,并没有真正改变a,b的值。
按引用调用

//此前定义了一个employee类实例域包括name age salary,方法有一个含参的构造方法一个展示的toString方法,和实例域对应的SetGet方法
	public static void main(String args[]){
	
	Employee Tom = new Employee("Tom",20,5000);
	Employee Jarry = new Employee("Jarry",19,10000);
	swap(Tom,Jarry);
	System.out.println(Tom.toString());
	System.out.println(Jarry.toString());
	}

	public static void swap(Employee n,Employee m) {
		Employee temp = new Employee(" ",0,0);
		temp.setName(n.getName());
		n.setName(m.getName());
		m.setName(temp.getName());
		return ;
	}

其结果为
Employee [name=Jarry, salary=5000.0, age=20]
Employee [name=Tom, salary=10000.0, age=19]
这个为什么又将name更换了呢?这就是按引用调用了,在这个swap方法中更换的不是m,n两个Employee对象,而是在操作Tom和Jarry对象将这两个对象的name更换了,所以才有了这个结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值