构造方法:
特点:
1、方法名和类名一样
2、没有返回值(不能写void,直接不写即可)
如果不写任何构造方法,系统默认提供一个无参数构造方法,只是我们看不到而已。
如果自己写了任何一个构造方法,系统就不会提供这个默认无参构造方法。
所以说如果自己写了一个带参数的构造方法,就要把无参数构造方法也要写上。
(后面使用或者学习的一些框架要new这个无参数的构造方法)
构造方法和一般方法的不同:
1、构造方法是在new对象的时候运行,而一般的方法是在对象调用的时候才执行。
2、一个对象的建立,构造方法只执行一次,而一般方法可以被改对象调用多次。
// 无参构造方法
public Student() {
}
// 有参构造方法
public Student(int id, String name, int age, String gender) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
}
public Student(int id, String name, int age) {
this(id, name, age, "男");
System.out.println("Student.Student33");
}
this(id, name, age, "男");
使得在new 对象时可以只输入前三个属性,最后一个默认为男
this指 public Student(int id, String name, int age, String gender) 此构造方法
** this 这行代码必须放在构造方法的第一行否则会报错
// Call to 'this()' must be first statement in constructor body
super 与this 类似,在子类构造方法中调用,代表父类中的构造方法,也是必须放在第一行