当前位置: 代码迷 >> 综合 >> Java参数传值机制传递(举例说明)
  详细解决方案

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

热度:54   发布时间:2024-01-25 08:44:19.0

关于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操作时,会修改值,情况改变。

  相关解决方案