java中,类的生成需要构造方法,以下对构造方法进行一些总结。
1 构造方法与一般方法
主要区别体现在以下三个方面:
(1)修饰符:构造方法可以带有任何访问修饰符(public、private或者protect)或者不带访问修饰符,但是除此之外,构造方法不能带有非访问性质的修饰符,如static、final、abstract等;
(2)返回类型:普通函数必须含有返回类型,即使没有无返回值,返回类型也是void,而构造方法没有返回类型,void也没有;
(3)命名方法:构造方法的名称总是与类名相同。一般方法名称可以与类名相同(虽然一般不这么做),此时区分一般方法与构造方法的方法是根据有无返回类型;
2 默认构造方法
java规定,每个类至少有一个构造方法,因此,若我们自定义的类没有构造方法,java会为我们提供一个不带参数的构造方法(不带参数的构造方法称为默认构造方法),而若用户定义了构造方法,这个默认构造函数就不会自动生成,即使用户定义的不是默认构造方法(不带参数),此时系统也不会再生成默认构造方法,此时系统不再有默认构造方法,而这种情况下我们最好字迹定义一个默认构造方法。
3 this的使用
实例方法中使用this,指向当前对象,可以调用当前对象的域和方法(但不能调用static方法),而构造函数中的this指向另一个构造函数,是java中在一个构造方法中调用另一个构造方法的方式,值得注意的是,通过this调用其他构造方法的构造方法中,this只能防止第一行,并且只能通过this调用一次其他构造方法。
4 super
实例方法中的super指向父类,通过其可以调用父类的域或方法,而构造方法中通过super可以调用父类的构造方法。
5 调用顺序
最后,总结一下初始化的顺序:
(1)父类的静态成员;
(2)子类的静态成员;
(3)父类的非静态成员;
(4)父类的默认构造函数;
(5)子类的非静态成员;
(6)子类的构造函数。