讲一个对象传递到一个方法中改变其属性并且返回!请问该传递是值传递还是引用传递?

来源:百度知道 编辑:UC知道 时间:2024/05/06 04:21:04

引用,不过JAVA不应该这么叫啊
不过JAVA里面貌似对象是new出来的吧....
那样的话应该传进去就能改了啊,无所谓引用
到是你要注意,不要乱改东西,凡是new的东西,作为参数传到一个函数里面,要是它的值改了,外面同样会被改的!

public class ATest{
public int i, j;
public ATest(int i, int j){
this.i = i;
this.j = j;
System.out.println(i+ " " + j);
}
public void test1(ATest t){
ATest a = new ATest(5, 6);
t = a;
}
public void test2(ATest t){
ATest a = new ATest(5, 6);
t.i = a.i;
t.j = a.j;
}
public static void main(String[] args){
ATest m1 = new ATest(1,2);
m1.test1(m1);
System.out.println(m1.i + " " + m1.j);

m1.test2(m1);
System.out.println(m1.i + " " + m1.j);
}
}
简单例子自己感受一下
Java的参数传递都是值传递,传递的是这个对象的引用的一个copy。可以在方法内部修改传入对象的属性,但是不能改变这个引用本身。

可以理解为传递一个指针的值进来,你可以修改这个指针指向的