匿名对象:没有名字的对象。格式如下:
new Person().showMessage();
当然,你也可以通过Person创建一个实例对象后,再去调用Person类中的方法,具体如下:
Person p = new Person(); //创建对象p.
//给对象的各个属性赋值。
p.name = "蛋蛋";
p.age = 6;
p.height = 1.1;
//调用类中的方法
p.showMessage();
匿名对象的使用场景:
(1)类中的方法仅被对象调用一次。
new Person().showMessage(); //showMessage方法被对象调用一次的时候.
(2)匿名对象做实参传递。
Person.show(new Person()); //匿名对象做实际参数。
匿名对象与非匿名对象对属性赋值的区别:
首先,看下面的代码,你感觉两者之间的区别是什么?
//非匿名对象
Person p = new Person();
p.name = "蛋蛋";
p.age = 6;
p.height = 1.1;
//匿名对象
new Perosn.name = "花花";
new Perosn.age = 21;
new Perosn.height = 1.2;
两者的最大区别:非匿名对象只是给对象p的三个属性赋值;匿名对象在给三个匿名对象的不同属性(单个属性)赋值。
匿名对象的内存分析:
非匿名对象:
匿名对象:
对于匿名对象需要注意:匿名对象执行完毕后,由于再无引用引用之,Java的自动回收机制会视作垃圾处理。
总结:匿名函数的知识点不难理解,但也要小心行事哦。希望我的文章对你有所帮助。