【java】方法的参数传递

方法:必须有其所在类或对象调用才有意义。

若方法含有参数:

  • 形参:方法声明时的参数
  • 实参:方法调用时实际传给形参的参数值

Java里方法的参数传递方式只有一种:值传递。

在这里插入图片描述

基本数据类型,值是保存在栈中;
引用对象,值保存在堆中,栈中存的是对象在堆中的地址。

方法参数传递之基本数据类型

public class Main {
    public static void main(String args[]) {
    	int a = 0;
    	swap(a);
    	System.out.println("main方法中的参数a的值:" + a);
    }
    
    public static void swap(int i) {
    	i = 6;
    	System.out.println("swap方法中的参数i的值:" + i);
    }
}

运行结果如下:
在这里插入图片描述
分析:
先执行的int a = 0; 在栈中开辟了一块内存,地址是XXXX,存的值是0.
再调用swap方法,执行int i 部分,在栈中开辟一块内存,地址是XXXX1,值就是从a那里复制过来的值0,执行swap的方法体里面的代码,i=6,把 i 在栈中的值改成6.

方法参数传递之基引用对象

public class Main {
    public static void main(String args[]) {
    	DataSwap ds = new DataSwap();
    	System.out.println("调用swap方法之前,ds.a的值是:" + ds.a);
    	swap(ds);
    	System.out.println("调用swap方法之后,ds.a的值是:" + ds.a);
    }
    
    public static void swap(DataSwap ds1) {
    	ds1.a=6;
    	System.out.println("在swap方法中,ds1.a的值是:" + ds1.a);
    }
}
public class DataSwap {
	public int a;
}

运行结果如下:
在这里插入图片描述
分析:
1、DataSwap ds = new DataSwap();把new DataSwap()存到堆内存中,地址是XXXX
2、ds引用对象存到栈中,地址是XXXX1,值是new DataSwap()对象在堆中的的地址
3、调用swap方法,给ds1引用对象保存到栈中,地址是XXXX2,存的值是来源于实参(ds),也就是ds的栈中存的值,这个值实际上就是之前new DataSwap()对象在堆内存的地址
在这里插入图片描述

总结:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值