zoukankan      html  css  js  c++  java
  • Java 匿名对象

    我们知道一般实例化一个对象的格式,如下:

    Car car = new Car();
    

    其中,变量名 car 就是 new Car() 这个对象的名字。car 是引用类型的变量,它的值存放的是对象的引用(或地址),通过 car 这个变量我们就可以间接使用对象。

    那所谓 Java 匿名对象,简单理解就是对象没有名字嘛。那怎样的对象会没有名字呢?如下:

    new Car();
    

    那这种匿名对象如何使用呢?所谓使用就是指调用对象的属性和方法。如下:

    new Car().door;
    new Car().start();
    

    这两行代码有两个 new 关键字,说明实例化了两个对象,并不是一个哦。

    由于这两个对象没有名字,所以这两行代码执行完以后,我们就无法再使用它们了,然后它们将会被 GC(Java 垃圾回收机制)当作垃圾回收掉。

    所以,匿名对象只能被调用一次

    那匿名对象有什么用处呢?没什么卵用。

    唯一有点用处的地方就是,当对象对方法或属性仅进行一次调用的时候,使用匿名对象可以少写一些代码,代码看起来更简洁。

    //匿名对象调用方法
    new Car().start();
    
    //非匿名对象调用方法
    Car car = new Car(); 
    car.start();      
    

    看到了吧,使用匿名对象只需要一行代码,而非匿名对象需要两行代码。

    另外,匿名对象也可以作为参数传递给方法

    //给汽车添加一个重启方法
    public void restart(Car car) {  // 汽车熄火了,需要传入另一辆汽车帮忙点火重新启动
         //...
    }
    
    Car car = new Car();
    car.restart(new Car());  //匿名对象作为参数使用
    

    以后看到匿名对象的使用,相信你不会再觉得别扭或奇怪啦。

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    Spring框架基本应用
    hibernate 多表查询
    myeclipse 中解决Hibernate 和Struts 2的冲突
    新建一个Tomcat服务器
    hibernate连接数据库
    MyEclipse从数据库逆向生成Hibernate实体类
    Struts 2 标签
    struts 2 框架的应用
    AutoIt: WinGetClassList可以把当前窗口所有的handle全部列出来
    自动化测试建议【转载,与我的想法完全雷同】
  • 原文地址:https://www.cnblogs.com/binbingg/p/13594317.html
Copyright © 2011-2022 走看看