JAVA-初步认识-第六章-匿名对象

一.

没有名字的对象。new Car();就是匿名对象,其实就是定义对象的简写格式。那么在调用的时候,就要写成new Car(). run(); 这是匿名的对象的两种使用方式之一。

两句写成一句。

如果写成new Car().run();new Car().run(); 那么这就是两个对象分别进行一次调用。

二.

如果写成下面这种情况,

我觉着是0….null。

插一句:Car c=new Car(); 如果将Car直接看成是一种类型的话,那么理解起来毫无压力。现在为什么会感到疑惑呢?就在于Car是人为设计的,好像不是java体系的。

Car c=new Car()在开辟内存空间时,先开辟空间,在给定地址,接着成员变量默认初始化值。

new Car().num=5, 这里是两步走,先是new Car(), 接着是. num=5; 也就是说先开辟空间并默认初始化,接着赋值。在执行到第二句new Car().color=”green”时,第一个对象已经变成了垃圾,没有引用和指向。

 

这里还要说一句,上面的三个语句中,前两个是没有意义的,只有第三个有函数的才有意义。

简化后有好处,但也有弊端。比如之前的三元运算符,必须要有结果,没结果简化不了。

什么是传递?

创建了c1,并且把c1放到show里面进行了改装。不用这么放也行。

在这里将匿名对象作为实际参数传递就意味着肯定会有一个类类型的引用变量来接收这个变量,现在把它往这一传,c就接收到了。public static void main(Car c), 定义一个c变量,就能接收所有对象进来。

 

posted @ 2017-10-08 20:15  前锋营  阅读(272)  评论(0编辑  收藏  举报