思考:一个对象赋给另一个对象,两个对象的成员变量是否相同?老师,这是第三题 我写的注释答案,请老师检查下

来源:8-11 测评作业

unbreakable_全栈

2024-11-23

//    3、思考:一个对象赋给另一个对象,两个对象的成员变量是否相同?
    public static void main(String[] args) {
        // 创建对象
        Children child1 = new Children();
        child1.age = 6;

        /**
         * 在 Java 中,当您执行 Children child2 = child1; 这行代码时,实际上您并没有创建一个新的 Children 对象。
         * 相反,您是将 child2 引用设置为指向 child1 引用所指向的同一个对象。这意味着 child1 和 child2 是同一个对象的两个不同引用。
         * 因此,当您通过 child2 引用更改 age 属性时,由于 child1 和 child2 引用的是同一个对象,child1.age 也会反映出这个更改。所以,child1.age 和 child2.age 是相同的。
         */
        Children child2 = child1;
        child2.age = 11;

        System.out.println("child1 age: " + child1.age); // 11
        System.out.println("child2 age: " + child2.age); // 11
        // 这表明 child1 和 child2 引用的是同一个对象,并且它们的 age 属性值是相同的。因此,答案是 child1 和 child2 是同一个对象,child1.age 和 child2.age 的值相同。
    }
}
public class Children {
    // 成员变量
    int age;

    // 成员方法
    public void play() {
        System.out.println("快乐童年,尽情玩耍");
    }
}

在这里输入代码
写回答

1回答

彭彭老师

2024-11-25

image-20230712113659210

是的,child1 和 child2 是同一个对象。child1 存储的是对象在堆内存中地址值,通过地址指向堆内存空间,把 child1 赋给 child2 对象,传递的是地址值,child1 和 child2 地址相同,指向的堆内存空间相同,所以对应的成员变量 age 是同一个。

0
0

Java零基础入门与实战

Java零基础入门与实战 多场景|多案例|全栈项目

277 学习 · 220 问题

查看课程