在面向对象中有一个非常重要的知识点,就是构造方法。每个类都有构造方法,在创建该类的对象的时候他们将被调用,如果没有定义构造方法,Java 编译器会提供一个默认构造方法。 创建一个对象的时候,至少调用一个构造方法。比如在新建一个对象new Object(),括号中没有任何参数,代表调用一个无参构造方法(默认构造方法就是一个无参构造方法)。构造方法的名称必须与类名相同,一个类可以定义多个构造方法。
//与类同名,可以指定参数,没有返回值
public 构造方法名(){
//初始化代码
}
例如:
public class People{
//无参构造方法
public People(){
}
//有一个参数的构造方法
public People(int age){
}
}
又如具体的构造方法
public class People {
//属性(成员变量)有什么
double height; //身高
int age; //年龄
int sex; //性别,0为男性,非0为女性
//构造函数,初始化了所有属性
public People(double h, int a, int s){
height = h;
age = a;
sex = s;
}
}
//创建对象,调用我们自己定义的有参构造方法
People XiaoMing = new People(168, 21, 1);
上面的例子中通过new关键字将类实例化成对象,而new后面跟的就是构造方法。于是可以知道new + 构造方法可以创建一个新的对象。
2. 如果在定义类的时候没有写构造方法,系统会默认生成一个无参构造方法,这个构造方法什么也不会做。
3. 当有指定的构造方法时,系统都不会再添加无参构造方法了。
4. 构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法。