公共类 DrumKitTestDrive {/** * @param args */public static void main(String[] args) { // TODO 自动生成的方法存根 Echo e1 = new Echo(); Echo e2 = new Echo();// **...
public class DrumKitTestDrive {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Echo e1 = new Echo();
Echo e2 = new 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.print(e2.count);
}
}
class Echo {
int count = 0;
void hello(){
System.out.println("Hellooooo....");
}
}
该代码的输出将是:
Hellooooo....
Hellooooo....
Hellooooo....
Hellooooo....
10
但是如果我在运行代码时删除注释, // e2= e1;
系统将打印 24 而不是 10 。我不明白为什么会这样?
实例 e1
的值复制 e2
实例中。如果系统这样做,结果将保持不变,因为两个对象属于同一类。