关于实例化过程中先后顺序问题

来源:8-6 Java 中的构造方法

Antique

2017-08-27 16:37

背景:实例化过程中(这里先不包含父类),我的理解先后顺序为:

  1. 静态代码块

  2. 初始化为默认值(int:0,boolean:false,引用类型:null)

  3. 显示声明

  4. 初始化块

  5. 构造函数中this调用的其他构造函数

  6. 主构造函数

代码

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:

真是无聊的问题,但还是望解答。

写回答 关注

1回答

  • qq_C_184
    2017-08-27 16:49:17

    你把它设置为静态函数,系统不会自动帮你设置为默认值

    Antiqu...

    Class Demo里面我并没有设置静态啊

    2017-08-27 22:27:39

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530653 学习 · 6091 问题

查看课程

相似问题