例如,我有一個班車,我有兩個對象類汽車寶馬和奔馳。因此,爲了實例化,我們必須聲明一個新的變量類似;類變量和類實例有什麼區別?
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