构造函数是java新建对象的一种手段
构造函数可以重载
如果一个类中有多个域,那么就可能需要多个构造函数。这时候,使用重载就可以了
构造函数中this和super的使用
this:(1)this用于本类的构造方法中,首先可以表示调用方法的对象.此时一般是为了去除歧义,也就是构造方法的参数和类中的域名字一致。这个时候就会采取就近原则
,因此。就必须使用this来显示的指定。
例如: class People{
int age;
String name;
People(){};
People(int age, String name){
this.age = age;
this.name = name
}
}
(2)当一个类中有太多的构造方法时,为了复用代码,可以在一个构造方法中可以使用this()来表示调用该类的其他构造方法。
例如:
class People{
String name;
String address;
int age;
public People() {
}
People(String name){
this.name = name;
}
People(String name, String address){
this.name = name;
this.address = address;
}
People(String name, String address, int age){
this.name = name;
this.address = address;
this.age = age;
}
就可以改写成
class People{
String name;
String address;
int age;
public People() {
}
People(String name){
this(name , null, 0);
}
People(String name, String address){
this(name, address, 0);
}
People(String name, String address, int age){
this.name = name;
this.address = address;
this.age = age;
}
Super在构造方法的使用:子类在构建对象的时候,要先进行父类的创建。此时,如果父类有默认无参的构造方法,那么子类构造方法中可以不显示的调用super(),如果父类中没有默认无参的构造方法,那么子类的构造方法中就必须显示的调用父类的有参构造方法。而且必须放在子类构造方法的最前面
例如:class People{
int age;
People(int age){
this.age = age;
}
}
class Student extends People{
Student(int age){
super(age);
this.age = age
}
}
public class Test{
public static void main(String a;rgs[]){
Student s = new Student();
}
}