如果t1给出编译错误,t2打印内存地址,t3打印为null, 然后你会写什么来获得一个对象的默认值(null)打印。
public class Test {
public Test{
}
public static void main(String[] args) {
Test t1;
Test t2= new Test();
Test t3= null;
System.out.println(t1); //compile error uninitialized
System.out.println(t2); //prints memory address
System.out.println(t3); //prints null
}
}
答案 0 :(得分:3)
只有实例或静态变量(在类范围内声明)具有默认值。局部变量(在方法范围内声明)没有默认值:在使用它们之前,需要初始化这些变量。
所以当编译器拒绝打印t1
(编译错误)时,编译器是正确的:你没有在方法中的那个点为这个变量赋值,而且它是一个局部变量,所以它不具有默认值。
答案 1 :(得分:2)
答案 2 :(得分:0)
只有变量具有默认值。对象包含所述变量或其他对象,其中还包含变量或其他对象等。