【发布时间】:2014-10-15 12:21:36
【问题描述】:
我知道在 Java 中类实例是通过引用传递的。我试图交换两个类实例,但没有奏效。我不明白如果它们是通过引用传递的,那么代码应该可以工作。我在这里错过了什么?
public class Swapper {
public static void main(String[] args) {
NormalClass na = new NormalClass(1235);
NormalClass nb = new NormalClass(5468);
System.out.println("Before: 1st Object -->");
na.print_obj();
System.out.println("Before: 2nd Object -->");
nb.print_obj();
NormalClass.swap(na,nb);
System.out.println("After: 1st Object -->");
na.print_obj();
System.out.println("After: 2nd Object -->");
nb.print_obj();
}
}
class NormalClass{
public int _ID;
public static void swap(NormalClass a, NormalClass b){
NormalClass temp;
temp = a;
a = b;
b = temp;
}
public void print_obj(){
System.out.println(this._ID);
}
NormalClass(int __id){
this._ID = __id;
}
}
【问题讨论】:
-
在 Java 类实例中不通过引用传递。相反,类引用是按值传递的:-)
-
对不起,我很困惑。你能解释一下吗?
-
如果将对象传递给java中的方法,并在被调用方法中更改变量指向的对象,则调用方法中的变量不会改变。
标签: java object instance pass-by-reference swap