刚开始学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 判断的时候,只要对象存在了我就不新创建了,这样每次调用得到的是同一个对象。