热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java值传递机制的说明及示例代码

本文对Java值传递机制进行了详细说明,包括形参和实参的定义和传递方式,以及通过示例代码展示了交换值的方法。

ps:值传递机制是面向对象上的重点和难点,这篇文章的将会对值传递机制做一个说明


文章目录



❤️💬⭐️


形参:方法定义时的参数;
实参:方法调用时实际传给形参的参数值。
值传递机制:
形参是基本数据类型,实参赋给形参变量的是实参真实存储的“数据值”;

看例子

public class ValuePassed {public static void main(String[] args) {int m = 10;int n = 20;swap(m,n);//调用方法,交换m和n的值System.out.println("m="+m+",n="+n);//m=10,n=20}public static void swap(int m ,int n){int temp = m;m = n;n = temp;}
}

说明:在main()里声明了m,n,在swap()里定义了两个同名形参m’和n’;将属性m,n传递给形参m’,n’,关键处就是这里,swap(m’,n’),是将m和n的值拷贝一份给形参m’,n’,不论形参如何改变不会影响到其原本的属性m和n;当swap(m’,n’)运行结束后,整个被回收机制处理,因此最终输出的结果是:m=10;n=20。
内存解析:
在这里插入图片描述

形参是引用数据类型,实参赋给形参变量的是实参存储的“地址值”。

class Value_propagation {public static void main(String[] args) {Data data=new Data();data.m=10;data.n=20;Value_propagation test=new Value_propagation();test.swap(data);System.out.println("m="+data.m+",n="+data.n);//m=20,n=10;}public void swap(Data data) {int temp=data.m;data.m=data.n;data.n=temp;}
}class Data{int m;int n;
}

说明:此时的swap(data)方法里,是将一个对象作为了一个实参赋给形参data’,而对象又存储的是地址值,因此方法main()和方法swap(data)指向了同一块内存空间,在swap(data)里进行操作就相当于在main()里面进行操作;即使swap(data)在运行结束后,被回收处理掉了,main()里的m和n的值同样被互换了。
内存解析:
在这里插入图片描述


写的内容偏向口水话,希望能帮助大家和自己更好地理解值传递机制
over✋



推荐阅读
author-avatar
荆灬樊小姐_526
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有