先举个例子:
public class Date {
public int year;
public int month;
public int day;
public Date(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
System.out.println("Date(int,int,int)方法被调用了");
}
public void printDate(){
System.out.println(year+"-"+month+"-"+day);
}
public static void main(String[] args) {
Date date=new Date(2022,2,28);
date.printDate();
}
}
输出:
构造方法的特性:
1. 名字必须与类名相同
2. 没有返回值类型,设置为void也不行
3. 创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次(相当于人的出生,每个人只能出生一次)
4. 构造方法可以重载(用户根据自己的需求提供不同参数的构造方法)
关于重载:重载就是一个方法的名字相同,参数列表不同,就构成了重载
(后面还有重写,在给大家介绍)
如果未定义构造方法,编译器会生成一份默认的构造方法,生成的默认构造方法一定是无参的。一旦用户定义,编译器则不再生成。
无参构造方法——给内部成员赋初值
构造方法中,可以通过this调用其他构造方法来简化代码
public Date() {
this(2022,2,28);
// this.year = year;
// this.month = month;
// this.day = day;
// System.out.println("Date(int,int,int)方法被调用了");
}
注意:
- this(...)必须是构造方法中第一条语句
- 不能形成环
还可以在IntelliJ IDEA中快速生成构造方法
右击鼠标——选择Generate(alt+insert)——选择Constractor(构造方法的意思)——选择成员变量点击OK就可以了