例如,我有一个班车,我有两个对象类汽车宝马和奔驰。因此,为了实例化,我们必须声明一个新的变量类似;类变量和类实例有什么区别?
Car BMW = new Car();
现在,如果什么对象被声明为
Car Benz;
如果第一个经过的参考,第二个按值传递,谁能帮我做的交换用一个例子实例化对象?
例如,我有一个班车,我有两个对象类汽车宝马和奔驰。因此,为了实例化,我们必须声明一个新的变量类似;类变量和类实例有什么区别?
Car BMW = new Car();
现在,如果什么对象被声明为
Car Benz;
如果第一个经过的参考,第二个按值传递,谁能帮我做的交换用一个例子实例化对象?
public class A{
int count = 1;
}
public class Main{
public static void main(String[] args) {
A a = new A();
A b = new A();
b.count = 2;
System.out.println("Before swap");
System.out.println("A count : "+a.count);
System.out.println("B count : "+b.count);
A c = b;
b = a;
a = c;
System.out.println("Before swap");
System.out.println("A count : "+a.count);
System.out.println("B count : "+b.count);
}
}
你不明白我的意思。你可以在主函数中交换这样的东西。但是我希望你通过调用一个函数来交换,就像一个函数'swap(a,b);'实际上应该把a和b作为a。如果你检查C和C++中的指针,你会得到更多的清晰度。 – shiva
http://www.geeksforgeeks.org/swap-exchange-objects-java/ –
@shiva为什么?在任何情况下,如果您修改函数的参数,调用函数将不会看到该更改;参数值是该函数的本地值。如果这些参数是引用,并且您更改了引用对象内的某些内容,则该更改将反映在调用函数中。 –
按值传递和按引用传递是指将参数传递给函数/方法 - 你不提任何东西 - 请澄清你的问题。我们可能会猜想,您想要创建一个交换两个变量的方法,但最好告诉我们您想完成什么。另外 - Java只支持传递值。 – nos
你必须理解**变量**和**对象**之间的区别 - 你写的就好像这些是相同的东西。变量*指的是一个对象,它本身不是对象。 '汽车奔驰;'只是声明一个变量而不初始化它,没有涉及任何对象。 – Jesper
@nos这很棒,但看到我做了一个实验。在所提到的代码中,请添加这个'System.out.println(aDog);',它实际上给出了一个十六进制数字,指的是寄存器中的地址。这意味着狗实际上指的是一个内存位置。我是一名java初学者,实际上我经历了o'reilly编写的java编程,其中说,默认情况下,jave将参数作为参考传递。 – shiva