构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。
Java 中的每个类都有一个默认的构造方法,并且可以有一个以上的构造方法。
Java 构造方法有以下特点:
- 方法名必须与类名相同
- 可以有 0 个、1 个或多个参数
- 没有任何返回值,包括 void
- 默认返回类型就是对象类型本身
- 只能与 new 运算符结合使用
注意:
1、如果为构造方法定义了返回值类型或使用 void 声明构造方法没有返回值,编译时不会出错,但 Java 会把这个所谓的构造方法当成普通方法来处理
2、不要在构造方法里使用 return 来返回当前类的对象,因为构造方法的返回值是隐式的
3、构造方法不能被 static、final、synchronized、abstract 和 native(类似于 abstract)修饰。构造方法用于初始化一个新对象,所以用 static 修饰没有意义。构造方法不能被子类继承,所以用 final 和 abstract 修饰没有意义。多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要。
4、类的构造方法不是要求必须定义的。如果在类中没有定义任何一个构造方法,则 Java 会自动为该类生成一个默认的构造方法。默认的构造方法不包含任何参数,并且方法体为空。如果类中显式地定义了一个或多个构造方法,则 Java 不再提供默认构造方法。
5、每个类可以具有多个构造方法,但要求它们各自包含不同的方法参数。
【代码演示】
public class Worker {
public String name; // 姓名
private int age; // 年龄
// 定义带有一个参数的构造方法
public Worker(String name) {
this.name = name;
}
// 定义带有两个参数的构造方法
public Worker(String name,int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "大家好!我是新来的员工,我叫"+name+",今年"+age+"岁。";
}
}