正文
Java传参那些事!
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
刚刚学习java传参的时候很纠结,也非常的不理解!课本上的“按值传递”和“按址传递”搞的自己是一头雾水,后来写的项目多了,自然就明白了!
现在写传参几乎就是条件反射一般——“秒成”,分享当初自己为此写的一个ppt,留个纪念!非常简单,高手莫笑!
按值传递和按址传递的对比
同样都是传入参数,为什么变量a的值没改变,而b[0]的值改变了呢?
两种参数传递的规则
用基本数据类型传参常见的一个错误!
目的:用传参的方法将一个数的值增加至原来的3倍。
结果:输出i=10。
解释:当执行方法的时候,n拷贝了i的数值,并形成一个副本n=10;执行n=n*3;后n的值变为30;方法结束后,n不再使用,对先前的i没有任何的影响;所以此时输出的i=10.
所以要想增加三倍后生效正确的方法是:
结果:输出i=30。
解释:当执行方法的时候,n拷贝了i的数值,并形成一个副本n=10;执行n=n*3;后n的值变为30,并将n的值用return返回,调用方法时,返回后的n的值又赋值给变量i,所以此时输出的i=30.
注意:
String类型是引用数据类型但它按值传递
String类型的数组按址传递
总结
按值传递的数据类型:八种基本数据类型和String
按址传递的数据类型:除String以外的所有复合数据类型,包括数组、类和接口