`
kakac001
  • 浏览: 13128 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

多个对象赋值问题(基础问题)

阅读更多
条件是:
Object object1; 
Object object2; 
Object object3;
object2 = new Object(); //假设这个new出来的叫做实例A
object3 = new Object(); //假设这个new出来的叫做实例B
object1 = object2;
object2 = object3;

问题是
现在 object1所指向的对象是哪个?



原本以为 object1 由于被赋值成 object2,
而object2又被赋值成 object3,
那么很自然object1这个时候应该是 object1 == object3

然而答案是object1 == object2
细想一下,
(一)当object1 = object2 时,
object2的内存地址被指给了object1,
即object1-->实例A,
object2-->实例A,
object3-->实例B,

(二)而object2被重新赋值成object3时,
这个时候object2-->实例B,
object3-->实例B,
而object1-->实例A,
因为object1并没有被改变.

如果把他们看成是5个对象间的互相赋值,
应该会好理解许多
分享到:
评论

相关推荐

    java 子类对象赋值给父类对象的使用

    6. **equals()和==**:在比较对象时,`equals()`方法会检查对象的内容是否相等,而`==`则检查引用是否指向同一个对象。对于向上转型的对象,`equals()`方法会根据重写的情况来判断,而`==`始终比较引用。 7. **匿名...

    易语言对象赋值

    在易语言中,对象赋值涉及到类的实例化、属性设置以及方法调用等多个方面。首先,我们需要了解"对象"的概念。对象是类的实例,包含了数据(属性)和行为(方法)。当我们说"对象赋值"时,通常是指对对象的属性进行...

    易语言对象赋值源码-易语言

    1. 自定义对象赋值函数:可能作者编写了一个函数来实现对象的深拷贝,避免了内置的简单赋值可能导致的引用问题。 2. 非标准的对象赋值方式:可能通过某种非标准的方法实现了对象的赋值,例如,通过序列化和反序列化...

    Java面向对象(基础)- 属性赋值过程、JavaBean和UML类图

    实例变量是每个对象创建时分配的一组内存空间,每个对象都有自己的副本。例如: ```java class User { String name; int age; } ``` 非实例变量(静态变量)由static修饰,如: ```java class User { static int ...

    改变赋值的小程序

    总之,"改变赋值的小程序"是一个涵盖广泛话题的概念,涉及到编程语言的基础语法、逻辑控制、数据结构、高级特性等多个方面。理解和掌握这些知识点,对于提升编程技能和优化代码质量有着重要作用。在实际工作中,灵活...

    python元组赋值-python基础教程之元组操作使用详解.pdf

    1. **赋值**:通过元组解压赋值,如`t = 1, 2, 3`,然后`x, y, z = t`,可以方便地将元组元素赋给多个变量。 2. **多值返回**:函数可以返回一个元组,从而实现多个值的返回,如`def test(): return (1, 2)`,然后...

    if字段赋值_If..._arcgis字段_arcgis_土地利用_字段赋值_

    这个场景下,我们讨论的是如何在ArcGIS中使用`If`语句对土地利用代码进行赋值。 首先,理解`If...`语句是编程中的基本逻辑控制结构,用于根据特定条件执行不同的操作。在ArcGIS的Python脚本或模型构建器中,我们...

    Java面向对象基础练习题

    当一个对象被引用变量引用时,我们可以通过这个引用变量来操作对象。this关键字则用于引用类的当前实例,通常用于区分成员变量和局部变量。 下面,我们逐一解析提供的练习题: 1. 关于类ClassA的代码中,存在方法...

    delphi事件赋值

    多事件处理允许一个事件有多个处理函数,通过`Assign`方法实现。动态事件赋值则可以在运行时根据需要添加或移除事件处理函数。 在组件之间的事件传递中,事件可以作为消息的一种形式,从一个组件传递到另一个组件。...

    ES6基础之解构赋值(destructuring assignment)

    解构赋值能让我们用更简短的语法进行多个变量的赋值,大大的减少了代码量。解构表达式有两种:array和object。 今天的文章笔者将从以下方面进行介绍: 使用数组表达式解构赋值 常规用法 忽略数组中的某些值 使用...

    鲸鱼编程python赋值.docx

    首先,Python中的赋值语句并不像某些其他语言那样创建一个全新的数据存储区域,而是创建了一个对象的引用。这意味着当你给一个变量赋值时,你不是在复制对象本身,而是在为变量创建一个指向已有对象的指针。这种设计...

    关于拷贝构造函数和赋值运算符

    这将导致多个对象共享同一块内存区域,从而引起数据覆盖、内存泄漏等问题。因此,我们需要提供自定义的拷贝构造函数,以确保动态分配的内存被正确地复制。 例如,对于如下类定义: ```cpp class CExample { public...

    Kotlin基础教程之面向对象

    Init块是用于初始化对象的代码块,它可以包含多个语句。在Kotlin中,每一个构造函数都必须为每一个成员变量赋予初值。 二、继承 继承是面向对象编程的一个重要概念,它允许一个类继承另一个类的属性和行为。在...

    赋值语句的语法分析程序

    总的来说,赋值语句的语法分析涉及到词法分析、递归下降解析以及表达式的求值等多个方面,这些都是编译器设计的基础。通过理解和实现这一过程,开发者可以更好地理解和创建自己的编程语言,或者优化现有编译器的性能...

    jQuery实现动态给table赋值的方法示例

    对于数组中的每个对象,我们首先克隆表格中预先定义的模板行(id为"template")。然后,我们使用jQuery的`find()`方法找到新行中的每个单元格(id分别为"id"、"url"和"title"),并使用`text()`方法将JSON对象的相应...

    学学Python_18语句_赋值语句1(序列解包)

    序列解包允许我们将一个可迭代对象(如元组、列表或字符串等)的元素逐个赋值给多个变量,一次性完成解构操作。 序列解包的基本语法是这样的:如果左边是一系列用逗号分隔的变量,右边是一个可迭代对象,Python会...

    8.函数参数解构赋值.md

    #### 解构赋值基础 解构赋值允许我们按照一定的顺序和结构从数组或对象中提取值,并将其分配给变量。这可以极大地简化处理复杂数据结构的过程。例如: ```javascript let [x, y] = [1, 2]; ``` 这里,`x` 和 `y` ...

    java+初识面向对象+基础题目

    我们可以使用类来创建多个对象,每个对象都有自己的属性和行为。 题目二:Husband和Wife类 在这个题目中,我们需要定义两个类:Husband类和Wife类。Husband类有姓名、年龄和妻子属性,Wife类有姓名、年龄和丈夫...

    鲸鱼编程python赋值.pdf

    Python还支持多重赋值,可以同时给多个变量赋值,如`a, b = 1, 2`。这里,`a`和`b`分别被赋予了1和2。此外,Python还允许链式赋值,如`a = b = c = 3`,此时`a`、`b`和`c`都引用了同一对象,即数值3。 理解Python的...

    如何对finereport报表的参数控件赋值

    在FineReport报表开发中,参数控件的动态赋值是一个常见需求,主要用于实现控件间的依赖关系,使得一个控件的值能够影响到其他控件的值。具体应用场景通常出现在报表的参数配置界面,其中当一个参数值发生变化时,...

Global site tag (gtag.js) - Google Analytics