构造方法的概念
构造方法是一种特殊的方法。特殊在哪里呢?我们先来看看它的语法。作为一个方法,修饰符后接的不是方法名而是类名,这就是构造方法的特殊之处。而构造方法分为无参构造方法和有参构造方法,构造方法本身就是一组重载方法。
语法:
修饰符 类名(参数类型 参数名称){
方法体;
}
特点:
- 方法名称和类名一致
- 构造方法没有返回值
- 构造方法没有返回值类型,连void也没有。
- 构造方法可以重载
功能:
- 主要是完成对象数据的初始化。
- 可以在创建对象的时候给成员方法赋值,实现对象属性的初始化。
构造方法的执行时机
当一个类中,没有给任何的构造方法,系统将会给出一个默认的构造方法。如果手写了一个构造方法,会把默认的无参构造方法覆盖掉。
其实我们每创建一个对象的同时,系统就一定会调用一次构造方法,构造方法会在对象创建的时候执行。如下图所示,我们创建了一个对象pro,此时也调用了一次构造方法Protect,因为括号内没有参数,所以调用的是无参构造方法,所以执行了方法里的输出语句“这是一个无参构造函数”。接着我们创建了另一个对象pro1,又调用了一次Protect这个构造方法,但这次括号内有参数了“Protect(1,“娃哈哈”,4.5);”,所以这次调用的是有参构造方法。由此可见,我们可以在创建对象的时候调用构造方法来给成员变量赋值。
总结
构造方法的创建
- 在一个类中,如果没有手动定义构造方法,系统将会给出一个默认的无参构造方法,方法体为空。
- 如果手动定义了构造方法,系统将不会再提供默认的构造方法。
构造方法的重载
- 如果定义了带参构造方法,还要使用无参构造方法,就必须再写一个无参构造方法,具体调用的是无参还是有参取决于创建对象时括号内不同的参数列表。
推荐的使用方式
- 无论是否使用无参构造方法,我们都推荐手写一个无参构造方法。