Java参数传值机制传递(举例说明)

关于Java参数传值机制传递
我将会举一个例子进行说明:
该代码有两个函数,一个是new一个对象传递,一个则不。我相信对比之下更好理解。
代码如下:

/**
 * 关于参数传值机制传递
 * 一个new对象(不改变值)一个不new对象(改变值)
 */
package luhan;
public class frame{
	int id;
	String name;
	
	public frame(int id,String name) {//构造函数初始化
		this.id=id;
		this.name=name;
	}
	public void fun1(frame f) {
		f.name="大蒙";
	}
	public void fun2(frame f) {
		f=new frame(111,"二蒙");
	}
	public static void main(String[] args) {
		frame f1=new frame(222,"qiaomeng");
		f1.fun1(f1);
		System.out.println(f1.name);//结果为:大蒙
		f1.fun2(f1);
		System.out.println(f1.name);//结果仍为:大蒙
	}
}

运行结果如下:
在这里插入图片描述两个函数执行后结果都为上面红色方框的答案。why?
请看解答:
(1)对于第一个函数即fun1():
在这里插入图片描述
(2)对于第二个函数即fun2():(fun1也起作用的情况下,先看上面,再看下面,不然看不懂)
在这里插入图片描述
总之大家记住最关键的一句话:函数中有new操作时(创建对象),不会修改值,情况不变;没有new操作时,会修改值,情况改变。

发布了112 篇原创文章 · 获赞 77 · 访问量 8万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览