牛客网Java刷题知识点之匿名对象、匿名对象的内存结构图、匿名对象的应用场景、匿名对象的使用、匿名对象的简单例子、匿名对象要注意的事项
不多说,直接上干货!
什么是匿名对象?
答: 没有名字的实体,也就是该实体没有对应的变量名引用。
没有名字的实体,没有引用类型变量指向的对象称作为匿名对象。
正常的,是
Car car = new Car();
匿名对象的,是
new Car();
匿名对象的简单演示
new Car().run();
匿名对象的内存结构图
1:new Car().num=5;
2:new Car().clor="blue";
两个new 是两个不同的对象,在堆内存中有不同的空间,相互不相互干扰。
匿名对象的应用场景
1: 当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化。
为什么只对方法,而不调用属性呢?因为匿名对象调用属性没意义。
如果对象要多成员进行多次调用,必须给对象起个名字。不能再使用匿名对象。
2: 匿名对象可以实际参数进行传递。
匿名对象的使用
1: 当只使用一次时可以使用匿名对象。执行完毕到 ; 后该匿名对象就变成了垃圾。
new Car().run();
2: 执行方法时,可以将匿名对象作为实际参数,传递进去。
匿名对象的简单例子
//学生类 class Student{ int num; //学号 String name; //名字 public void study(){ System.out.println("好好学习天天向上"); } } class myClass{ public static void main(String[] args) { //创建一个学生对象 //Student s = new Student(); //new Student().name = "小明"; //匿名对象 //System.out.println(Student().name); //null System.out.println(new Student() == new Student()) ; // "==" 用于引用类型变量时,比较的是内存地址。判断两个 对象是否为同一个对象 需求: 调用Student的study方法。 Student s = new Student(); s.study(); //创建匿名对象 new Student().study(); } }
匿名对象要注意的事项:
1: 我们一般不会给匿名对象赋予属性值,因为永远无法获取到。(因为是没有引用变量指向那个对象)
2: 两个匿名对象永远都不可能是同一个对象。
作者:大数据和人工智能躺过的坑
出处:http://www.cnblogs.com/zlslch/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!