在C和C++当中,一般情况下通过指针来对对象进行引用,那在java当中是如何引用或者是使用对象的呢。Java当中一切都被视为对象,所以在Java当中对对象的引用相对来说比较简单,我们会通过引用(reference)来进行引用对象,例如有一台电视机,我们可以通过一个遥控器来进行控制电视机,那遥控器就相当于电视机的一个引用,遥控器只有在进行控制的时候才会有用,只要拥有这个遥控器,就可以针对电视机进行控制,例如转频道,控制大小音量等等,在这里,遥控器就可以理解为针对电视机这个对象的一个引用。你使用遥控器来操作电视,你实际上是操作的是遥控器(引用),然后再通过遥控器去调控电视机(对象)。
当你使用IDE(博主使用的是eclipse)在Java类中创建一个引用并使用该引用但是没有进行初始化的时候,如果没有使用该引用,则不会报错
例如:
package thinkinginjava.exercise.chapter.one;
public class ObjectIsReference {
public static void main(String[] args) {
String s;//如果直接这样调用,IDE会给你提示错误The local variable s may not have been initialized
System.out.println("S is :"+s);
}
}
IDE会给你报以下错误:
The local variable s may not have been initialized
提示你需要针对s进行初始化,所以一般情况下,我们会在创建引用的时候去对其初始化,去创建其引用的对象,通过 new关键字,会将以上代码修改为:
package thinkinginjava.exercise.chapter.one;
public class ObjectIsReference {
public static void main(String[] args) {
String s;//如果直接这样调用,IDE会给你提示错误The local variable s may not have been initialized
s = new String("Hello world!");
System.out.println("S is :"+s);
}
}
但是如果作为一个类的域,Java默认会将其进行初始化,例如以下例子:
package thinkinginjava.exercise.chapter.one;
public class JavaInitial {
private int i;
private char c;
private String s;
public static void main(String[] args) {
JavaInitial ji = new JavaInitial();
System.out.println(ji.i);
System.out.println(ji.c);
System.out.println(ji.s);
}
}
输出结果为:
0
[]
null