本帖最后由 根号5 于 2012-4-28 21:26 编辑
我认为楼主问的这两个问题其实是一个问题,当new一个对象的时候就对应的在堆内存空间中开辟了一个内存空间,这时如果设定一个对象的引用变量指向他,Car c = new Car(),(作为一个类来讲无所谓有没有初始值,赞同楼上的观点)c 也就指向了这个对象的地址。不用管打印"c"还是“new Car”得到的都是这个对象的地址(前提是不重写 toString()方法):代码如下
class Car
{ int num=4;
String color="blue";
void run()
{System.out.println(num+".."+color);};
/*public String toString()
{
return "hello heima";
}*/
}
class Demo
{ public static void main(String[]args)
{
System.out.println( new Car());
}
}
打印结果为 Car@1a80a69
如果把上边的toString()方法的注释去掉,打印的就是 hello heima
初始值什么的 关于值的都是针对变量或常量(总之都是关于量的)而言的,此时如果仅仅在Demo中定义一个Car类型的引用:也就是Car car;这样的car是一个引用变量,不指向任何对象,此时值为null。
|