【人们把构造方法叫做构造器】
在创建对象的时候完成属性的初始化操作,此时需要使用到有参数构造方法才能完成该功能。
定义有参数构造方法
public class Student {
private String name;
private int age;
private double height;
private String sex;
private int number;
//为了代码的简化暂时不写属性的setter和getter方法
//定义出有参数的构造方法
public Student(String name) {
this.name=name;
}
public Student(String name,Integer age) {
this.name=name;
this.age=age;
}
public Student(String name,Integer age,String sex) {
this.name=name;
this.age=age;
this.sex=sex;
}
public Student(String name,Integer age,String sex,int number) {
this.name=name;
this.age=age;
this.sex=sex;
this.number=number;
}
public void fun() {
System.out.println("名字:"+name+",年龄:"+age+",性别:"+sex+",学号:"+number);
}
}
上面定义了四个有参数构造方法
发现了构造方法可以重载,而且发现了书写的习惯是重载的构造方法按照参数的个数进行升序排序。
调用有参数构造方法
public class Hello {
public static void main(String[] args) {
//使用有参数的构造方法实例化对象
Student s= new Student("张三");
s.fun();
}
}
名字:张三,年龄:0,性别:null,学号:0
public class Hello {
public static void main(String[] args) {
//使用有参数的构造方法实例化对象
Student s= new Student("张三",19,"男",10001);
s.fun();
}
}
名字:张三,年龄:19,性别:男,学号:10001
之前我们需要为对象属性赋值必须先创建对象在使用【对象名.属性名】或者使用setter方法去实现,现在我们直接使用有参数的构造方法去实现。
继续观察代码
public class Hello {
public static void main(String[] args) {
//使用有参数的构造方法实例化对象
Student s= new Student();
s.fun();
}
定义有参构造方法后,JVM任务不再需要无参数构造方法了,有参构造方法不赋值报错,所以我们定义了有参参数构造方法那么也需要显示的定义出无参数构造方法。
显示定义无参数构造方法
public Student() {
}
总结:
1.有参构造方法的出现是为了方便为对象的属性初始化值。
2.一般在类中构造方法的顺序都是按照参数的个数去升序排序的。
3.如果定义了有参构造方法那么JVM就不会再提供无参数构造了,所以如果我们定义了有参构造那么无参构造也要显示的定义出来。