构造方法又被称为构造函数/构造器/Constructor
1、 * 构造方法语法结构:
【修饰符列表】 构造方法名 (形式参数列表){
构造方法体;
}
注:对于构造方法,“返回值类型”不需要指定,并且也不能写void。方法名必须要和类名保持一致。
* 普通方法的语法结构:
【修饰列表符】 返回值类型 方法名 (形式参数列表){
方法体;
}
2、构造方法的作用?
* 创建对象。
* 创建对象的同时,初始化实例变量的内存空间。
3、构造方法应该怎么调用?
* 普通方法是这样调用的:方法修饰符中有static的时候:类名.方法名(实参列表)
方法修饰符中没有static的时候:引用.方法名(实参列表)
* new 构造方法名(实参列表)
4、构造方法调用执行之后,有返回值吗?
每一个构造方法实际上执行结束之后都有返回值,但是这个“return 值;”这样的语句不需要写,构造方法结束的时候Java程序自动返回值,并且返回值类型是构造方法所在类的类型。由于构造方法的返回值类型就是类本身,所以返回值类型不需要编写。
5、当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法称为缺省构造器。
而当一个类的构造方法定义出来了,那么系统不再默认为这个类提供缺省构造器。(建议手动为该类提供无参数构造方法,因为无参数构造方法太常用了)
6、构造方法支持重载机制,在一个类中编写多个构造方法,这多个构造方法显然已经构成方法重载机制了。
7、* 成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。
* 实例变量没有手动赋值的时候,系统默认赋值,那么这个系统默认赋值是在什么时候完成的呢?
不是在类加载的时候,因为类加载的时候只加载了代码片段,还没来得及创建对象,所以此时实例变量并没有初始化。
实际上,实例变量的内存空间是在构造方法执行过程当中完成开辟的,完成初始化的,系统在默认赋值的时候,也是在构造方法执行过程当中完成的赋值。