我是这样理解的,大家看看对不对,输出结果是空(不是字符‘null’)class rock{ rock(){ System.out.println(new String());}}public class constructor {public static void main(String args[]){ new rock();}}
2 回答

四季花海
TA贡献1811条经验 获得超5个赞
就是成员变量没有显示赋值,编译器会将成员变量设置为默认值
public class NoneInitTest {
private String str;
public static void main(String[] args) {
System.out.println(new NoneInitTest().str);
}
}
如果成员变量类型是对象,未显式初始化的话,就会被设为null,但是如果是方法中定义的局部变量的话,不会设置默认值,而是会报错

暮色呼如
TA贡献1853条经验 获得超9个赞
public class Foo {
private static String str;
public static void main(String[] args){
System.out.println(str);
}
}
就是类中的一个域如果没有被初始化,Java会把它初始化为该类型的零值。
添加回答
举报
0/150
提交
取消