不多说,直接上干货!

什么是匿名对象?

  答: 没有名字的实体,也就是该实体没有对应的变量名引用。

     没有名字的实体,没有引用类型变量指向的对象称作为匿名对象。

  正常的,是

    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:   两个匿名对象永远都不可能是同一个对象。

最新文章

  1. android--gradle编译龟速?offline!
  2. 微信公众号 扫码支付 模式二 demo
  3. OutputCache属性详解(二)一 Location
  4. Linq专题之创建Linq查询表达式
  5. C#之MemberwiseClone与Clone
  6. php实现斐波那契数列以及由此引起的联想
  7. 【CITE】VS2012程序打包部署
  8. Gym 100818I Olympic Parade(位运算)
  9. JAVA之GUI编程窗体事件
  10. ACM核武器
  11. PHP编码相关函数试题
  12. virtio 简介
  13. Struts2(五)常量的配置
  14. Centos7安装RocketMQ及配置测试
  15. SpingMVC的工作流程
  16. 第6章 Hyperledger Fabric模型
  17. 基于RBAC模型的权限系统设计(Github开源项目)
  18. ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
  19. centos文件与权限
  20. 试安装pyQt5+eric6+python安装

热门文章

  1. Python-第三方库requests详解(附requests中文官方教程)
  2. vim尝试
  3. 读paper笔记[Learning to rank]
  4. vimrc配置-中文编码和python中的中文注释
  5. java eclipse导出可运行jar包(java服务)和导入
  6. 洛谷P2709 BZOJ 3781 小B的询问 (莫队)
  7. Java之批处理的实现
  8. Oracle数据稠化
  9. kuangbin专题十二 POJ3186 Treats for the Cows (区间dp)
  10. logrotate工具日志切割