理论教育 属性值可否被引用?匿名对象的'=='比较结果为false

属性值可否被引用?匿名对象的'=='比较结果为false

时间:2023-10-18 理论教育 版权反馈
【摘要】:把没有名字的实体称之为匿名对象,即用new关键字创建一个对象后,并未把得到的引用值赋值给一个对象名,因此匿名对象实体没有变量名引用,匿名对象只能在创建时使用一次。阅读下列程序,体会对匿名对象设置的属性值是否能够被引用,两个匿名对象“==”比较的结果是什么。任何两个匿名对象使用“==”比较,计算结果永远为false。

属性值可否被引用?匿名对象的'=='比较结果为false

把没有名字的实体称之为匿名对象,即用new关键字创建一个对象后,并未把得到的引用值赋值给一个对象名,因此匿名对象实体没有变量名引用,匿名对象只能在创建时使用一次。因此,当对象对方法只调用一次的时候,可以使用匿名对象对代码进行简化。若要多次使用的对象,必须给对象起一个名字,而不能使用匿名对象。

如:new Car().run();

1.匿名对象使用场景

(1)当对象对方法只进行一次调用时,可以使用匿名对象对代码进行简化,匿名对象引用属性没意义。通常匿名对象的方法执行完毕后该对象就变成了垃圾。

(2)匿名对象多用于作为实参传递给形参。

如:

2.不同的匿名对象占有不同的内存空间

如:

上面两个new 出来的匿名对象是两个不同的对象,在堆内存中有不同的空间,相互不干扰。因此若有System.out.println(new car()==new car());,则结果为false。(www.daowen.com)

【例4.5】阅读下列程序,体会对匿名对象设置的属性值是否能够被引用,两个匿名对象“==”比较的结果是什么。运行结果如图4.7所示。

图4.7 匿名对象测试

Example4_5.java

3.匿名对象小结

(1)因为没有引用变量指向匿名对象,永远无法获取给匿名对象设置的属性值,因此对匿名对象设置属性值没有意义。

(2)任何两个匿名对象使用“==”比较,计算结果永远为false。

(3)匿名对象主要应用于实参传递。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈