日期:2014-05-20  浏览次数:20655 次

刚开始学java今天上课讲了个问题不太懂!!请教高手讲解!
package pig;

public class Car {
private static Car car;
public static Car getInstance(){
if(car==null){
car=new Car();
}return car;
}

}


package pig;

public class Test {


public static void main(String[] args) {
  Car car1=Car.getInstance();
  Car car2=Car.getInstance();
  System.out.println(car1==car2);

}

}
红色字那部分实在是不理解,car是一个引用类型变量名,为什么要判断car==null呢?
car==new Car()是不是相当于实例化?
return car返回值返回给谁?
明白的麻烦详细点讲,或者语音也可以,qq号149040935

------解决方案--------------------
car是一个引用类型变量名,为什么要判断car==null呢?
引用类型才能和null进行比较判断,看是否指向了对象,如果没指向任何对象,就是null
car==new Car()是不是相当于实例化?
是的.
return car返回值返回给谁? 
谁调用这个方法就返回给谁
------解决方案--------------------
因为每次调用getInstance都返回一个新对象,所以是 false了。
而用null 判断的时候,只要对象存在了我就不新创建了,这样每次调用得到的是同一个对象。