【摘要】:把没有名字的实体称之为匿名对象,即用new关键字创建一个对象后,并未把得到的引用值赋值给一个对象名,因此匿名对象实体没有变量名引用,匿名对象只能在创建时使用一次。阅读下列程序,体会对匿名对象设置的属性值是否能够被引用,两个匿名对象“==”比较的结果是什么。任何两个匿名对象使用“==”比较,计算结果永远为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)匿名对象主要应用于实参传递。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关Java程序设计的文章