Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象及其在Java中的引用_Java_Object_Reference - Fatal编程技术网

对象及其在Java中的引用

对象及其在Java中的引用,java,object,reference,Java,Object,Reference,我读了这篇文章: 如果我以这种方式创建变量,我认为用于显示对象引用的图片是不正确的: pt1 = new Point(100,100) pt2 = new Point(100,100) 我的问题是: 如果我像上面那样创建两点,会发生什么情况?对对象的引用是什么样子的?(我假设选项1是正确的): 备选案文1: pt1 ---->[Point object: 100, 100] pt2 ---->[Point object: 100, 100] 备选案文2: pt1 ----&g

我读了这篇文章:

如果我以这种方式创建变量,我认为用于显示对象引用的图片是不正确的:

pt1 = new Point(100,100)
pt2 = new Point(100,100)
我的问题是:

如果我像上面那样创建两点,会发生什么情况?对对象的引用是什么样子的?(我假设选项1是正确的):

备选案文1:

pt1 ---->[Point object: 100, 100]

pt2 ---->[Point object: 100, 100]
备选案文2:

pt1 ----> |----------------------|
          |Point object: 100, 100|
pt2 ----> |----------------------|
如果你说:

pt1 = new Point(100,100) 
pt2 = new Point(100,100)
那么选项1是正确的

如果你说:

pt1 = new Point(100,100)
pt2 = pt1

然后出现选项2是的,你是对的,选项1是正确的。

只是为了指出为什么只有选项1是正确的:想想如果选项2是正确的,会有什么后果:

pt1 = new Point(100,100)
pt2 = new Point(100,100)

pt1.x = 200

System.out.println(pt2.x)
那会印什么

如果对相似对象的引用自动指向同一内存,修改其中一个将修改另一个,但仅在创建相似对象的情况下。至少可以说,这是一种令人惊讶的行为


但是应该注意的是,在强调不变性的语言中,选项2是可能的,因为您可以保证对象永远不会改变

因此,我同意为什么我认为应该有两张图片包含在提到的文章中,供任何初学者看到这些信息。不管怎样,谢谢你的回答。@BlueTomato给文章作者写信比在这里发帖更有可能做出这种改变。
new
意味着新。您创建的每个
点都是一个新对象。