我理解以下Java輸出。不理解Echo e2 = e1在Java中
public class EchoTestDrive {
public static void main(String[] args){
Echo e1 = new Echo();
Echo e2 = new Echo();
int x = 0;
while (x<4){
e1.hello();
e1.count = e1.count + 1;
if (x==3){
e2.count = e2.count +1;
}
if(x>0){
e2.count = e2.count + e1.count;
}
x = x+1;
System.out.println("e1.count is " + e1.count);
System.out.println("e2.count is " + e2.count);
}
System.out.println(e2.count);
}
}
class Echo {
int count = 0;
void hello(){
System.out.println ("helloooooooo..");
}
}
輸出
helloooooooo..
e1.count is 1
e2.count is 0
helloooooooo..
e1.count is 2
e2.count is 2
helloooooooo..
e1.count is 3
e2.count is 5
helloooooooo..
e1.count is 4
e2.count is 10
10
但是當我改變回聲E2 =新回聲() - 回波E2 = E1,我不明白爲什麼輸出是如此。
public class EchoTestDrive {
public static void main(String[] args){
Echo e1 = new Echo();
Echo e2 = e1;
int x = 0;
while (x<4){
e1.hello();
e1.count = e1.count + 1;
if (x==3){
e2.count = e2.count +1;
}
if(x>0){
e2.count = e2.count + e1.count;
}
x = x+1;
System.out.println("e1.count is " + e1.count);
System.out.println("e2.count is " + e2.count);
}
System.out.println(e2.count);
}
}
class Echo {
int count = 0;
void hello(){
System.out.println ("helloooooooo..");
}
}
輸出
helloooooooo..
e1.count is 1
e2.count is 1
helloooooooo..
e1.count is 4
e2.count is 4
helloooooooo..
e1.count is 10
e2.count is 10
helloooooooo..
e1.count is 24
e2.count is 24
24
我,當x = 0時,e1.count是1和e2.count是0 當x = 1時,e1.count是e1.count是2和e2.count是2.等
我希望有人解釋它。
在此先感謝。