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());  //匿名对象作为参数使用

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

posted @ 2020-09-01 09:25  Binge-和时间做朋友  阅读(139)  评论(0编辑  收藏  举报