8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

当一个对象被分配给另一个对象时会发生什么

P-Gn 1月前

17 0

公共类 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 实例中。如果系统这样做,结果将保持不变,因为两个对象属于同一类。

帖子版权声明 1、本帖标题:当一个对象被分配给另一个对象时会发生什么
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由P-Gn在本站《object》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 将一个对象赋值给另一个对象只是赋值了对象引用(或多或少是一个指针)。它不会复制成员变量等。

    您需要阅读有关 克隆的内容 。 来自 Java wiki 的第一段 clone() :

    在 Java 中,对象是通过引用变量来操作的,并且没有用于复制对象的运算符——赋值运算符复制的是引用,而不是对象。 clone() 方法提供了这一缺失的功能。

返回
作者最近主题: