What 什么是构造函数?
构造函数是一种不带任何返回值且与类同名的函数,它是属于类的,在new类的实例对象时被调用。分无参和有参两种。可以自定义构造函数。若未自定义构造函数,则调用默认的无参构造函数;若自定义了构造函数,则根据参数类型及个数再决定调用哪个。
在new一个实例对象时,会先调用的是父类的构造函数,再调用子类的构造函数。即先创建出父类对象,然后才能创建子类对象,详见下图:
Why 为什么要有构造函数?
通过构造函数可以给类的对象初始化一些共用的基本属性信息或实现一些该类对象都需要实现的基本功能,提升代码的简洁性。试想一下,假如没有构造函数来替我们做这些事情,岂不是每创建一个对象后都需要编写一些重复的代码呢?
Other
构造函数是一种特殊的方法,具有以下特点:
1.构造函数的方法名必须和类名相同
2.构造函数没有返回类型,可以有return但是不能有返回值,这这里只是标识结束,并不是返回的表示,一般也不使用return
3.构造函数的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
4.一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造方法,这个构造方法不执行任何代码。
5.构造方法可以重载,以参数的个数、类型、顺序。
构造函数的调用:
子类必须先调用父类的构造函数。可以通过系统自动调用父类的默认构造函数,如果父类没有默认构造函数时,子类构造函数必须通过super调用父类的其他有参的构造函数。
构造函数的执行过程:
1.初始化对象的存储空间为0或null值;
2.调用父类构造函数;
3.按照顺序分别调用类成员变量和实例成员变量的初始化表达式。