对象的引用

本文通过一个具体的Java示例,深入浅出地解释了对象引用的概念及其在程序中的工作原理。重点介绍了如何通过引用而非直接复制对象来修改变量,并展示了如何区分不同对象之间的引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   对处理对象而言,理解引用至关重要。

   引用是一个地址,它指名了对象的变量和方法的存储位置。

   将对象赋给变量或将参数传递给方法时,您实际上并没有使用对象,您甚至没有使用对象的拷贝,您使用的是对象的引用。

   为更好的说明这种差别,下面程序引用了工作原理。

 

例1:

 

答案:Point1: 200, 200

         Point2: 200, 200

 

在程序前半段部分执行如下操作。

第5行:创建两个Point变量。

第6行:将一个新的Point对象赋给pt1。

第7行:将pt1的值赋给pt2。

 

第9-12行:是比较微妙的。将pt1的变量x和y都设置为200,然后将pt1和pt2的所有变量都显示在屏幕上。

您可能认为pt1和pt2用不同的值,然而输出表明,情况并非如此,正如你看到的,pt2的变量x和y也被修改

了,虽然在程序中没有对它们做任何显示的修改。

这是因为第7行让pt2引用pt1,而不是将pt1的拷贝赋给pt2。

pt2引用的对象与pt1相同,如图(1)所示。它们都可以来引用该对象或修改它的变量。

图1

要让pt1和pt2指向不同的对象,可以在第6行和第7行分别使用new Point()语句来创建不同的对象,如下所示:

pt1= new Point(100,100);

pt2 = new Point(100,100);

 

摘自—《21天学通JAVA 6》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值