很多人在学习Java的过程中不了解对象初始化的具体步骤到底如何,只是模糊的知道构造函数等可以进行初始化的内容,我们现在对Java中的类初始化步骤做一个详细的解析。
首先我们来了解一下到底有哪些地方可以初始化,我们给出下面的一段示例代码:
public classs Book ...{
private String name; 默认初始化,初始化的值由系统给定,为null
private double price = 20.0; //默认初始化,初始化的值为20.0
private static int type;
//下面这个为静态初始化模块
static ...{
type = 1;
}
//下面这个为初始化模块
...{
price = 30.0;
}
//类的构造方法
public Book(String name, double price) ...{
this.name = name;
this.price = price;
}
}
在上面的代码中我们可以看到,总共存在这样几个可以做初始化的地方:
1、静态初始化模块
2、默认初始化
3、初始化模块
4、构造方法
现在我们来说明这些初始化的步骤:
1、在类第一次被加载的时候的,静态初始化模块会工作完成一个部分初始化任务
2、在类构造对象的时候,具体步骤如下:
a、系统创建类的实例对象
b、执行默认初始化,如果程序中指定了默认初始化的值,那么就按照默认值进行初始化,如果程序中没有指定初始化的值,那么由系统自动赋值,赋值的原则为:“一切都是0”,整型属性赋值0,浮点属性赋值0.0,字符属性赋值‘\0',布尔类型属性赋值false,引用类型属性赋值null
c、执行初始化模块,如果程序中存在多个初始化模块,那么按照书写顺序执行所有初始化模块。
d、执行对象中的构造方法。
完成上述步骤,一个对象的初始化任务就算彻底完成了。
这里补充说明一下:
默认初始化和初始化模块执行时的先后顺序取决于类中的书写顺序,如果初始化模块在属性的前面定义,那么初始化模块将会先执行。
首先我们来了解一下到底有哪些地方可以初始化,我们给出下面的一段示例代码:
public classs Book ...{
private String name; 默认初始化,初始化的值由系统给定,为null
private double price = 20.0; //默认初始化,初始化的值为20.0
private static int type;
//下面这个为静态初始化模块
static ...{
type = 1;
}
//下面这个为初始化模块
...{
price = 30.0;
}
//类的构造方法
public Book(String name, double price) ...{
this.name = name;
this.price = price;
}
}
在上面的代码中我们可以看到,总共存在这样几个可以做初始化的地方:
1、静态初始化模块
2、默认初始化
3、初始化模块
4、构造方法
现在我们来说明这些初始化的步骤:
1、在类第一次被加载的时候的,静态初始化模块会工作完成一个部分初始化任务
2、在类构造对象的时候,具体步骤如下:
a、系统创建类的实例对象
b、执行默认初始化,如果程序中指定了默认初始化的值,那么就按照默认值进行初始化,如果程序中没有指定初始化的值,那么由系统自动赋值,赋值的原则为:“一切都是0”,整型属性赋值0,浮点属性赋值0.0,字符属性赋值‘\0',布尔类型属性赋值false,引用类型属性赋值null
c、执行初始化模块,如果程序中存在多个初始化模块,那么按照书写顺序执行所有初始化模块。
d、执行对象中的构造方法。
完成上述步骤,一个对象的初始化任务就算彻底完成了。
这里补充说明一下:
默认初始化和初始化模块执行时的先后顺序取决于类中的书写顺序,如果初始化模块在属性的前面定义,那么初始化模块将会先执行。