JAVA对象问题

来源:百度知道 编辑:UC知道 时间:2024/07/15 05:15:25
比如我我已经有一个CAR类了

那么CAR car1;和CAR car1=new CAR()
这两个有什么区别啊

CAR car1 这个只是定义了一个对象并没有实例化
CAR car1=new CAR()
是实例化的对象。

car1只是一个引用,而 new CAR()才真正的在内存中开辟了空间,是一个对象。所以区别也很明显了:
CAR car1;//这样只是说明car1是一个可以指向CAR(类型,又或结构)的引用,而目前是没有指向任何具体的对象的,你可以认为它为null.
CAR car1 = new CAR();//这种方式跟前面的一种不一样,car1是一个完完全全存在的一个引用,并指向内存中一个CAR类型的对象。

CAR car1这个是声明有这个东西..没有实际分配内存
就像人一样..先把名字按好 户口放那..但是没这个人 还没出生一样
CAR car1=new CAR()
这个就是人都出来咯..有这个东西了..就是分配就实际从内存空间
这个对象里面的东西也都实际存在了.

前者是声明,后者是创建。

楼上俩位都说得很清楚了,有没实例化的问题.