Antique
2017-08-27 16:37
背景:实例化过程中(这里先不包含父类),我的理解先后顺序为:
静态代码块
初始化为默认值(int:0,boolean:false,引用类型:null)
显示声明
初始化块
构造函数中this调用的其他构造函数
主构造函数
代码:
public class ConstructorTest { public static void main(String[] args){ Demo d = new Demo(); //无参构造函数 } } class Demo{ private String name = ""; //instance field initialization 显示域初始化 public Demo(){ } }
问题:
根据先后顺序,name先显式初始化为"",然后再调用构造函数,查过相关资料空的构造函数的定义是:“设置为默认值”,我的理解是默认值是null。但是这里name最后的输出是"",所以问题是:空的构造函数的默认值是什么?
PS:
真是无聊的问题,但还是望解答。
你把它设置为静态函数,系统不会自动帮你设置为默认值
Java入门第二季 升级版
530653 学习 · 6091 问题
相似问题