*构造函数是什么*
构造函数是在创建对象时被自动调用的特殊方法,用以初始化对象。
*定义构造函数*
构造函数采用与类相同的名称,没有返回值。(与返回值为空void完全不同)
没有任何形参的构造器叫做默认构造器,作用是创建一个默认对象。
如果类中没有写构造器,那么编译器会自动创建一个默认构造器;
如果已经定义了构造器(不管有没有参数),编译器便不会自动创建。
*构造函数重载*
构造函数与一般方法一样可以重载,即允许多个构造器同时存在,以便满足不同的初始化对象需求。通过每个构造函数独一无二的参数类型列表区分不同的构造函数。在创建对象时,编译器通过判断传入的形参类型,调用相应的构造器初始化对象。
*构造函数中调用构造函数*
已经知道,可以为一个类定义多个构造器,有时候想要在一个构造器中调用另一个构造器,以避免代码重复,可以用this关键字调用。下面是一个简单的程序示例。
public class Flower{
int count = 0;
String s = "initial value"
Flower(int flowers){
count = flowers;
System.out.println("Constructor int args")
}
Flower(String ss){
s = ss;
System.out.println("Constructor String args")
}
Flower(int flowers,String ss){
this(flowers);
//!this(ss);//can't call two
System.out.println("int&String args");
}
Flower(){
this(20,"rose");
System.out.pritnln("Default Constructor ");
}
void printCount(){
//!this(20);//no inside Constructor
System.out.pritnln("count = "+count+",s = "+s);
}
public static void main(String[] args){
Flower rose = new Flower();
rose.printCount();
}
}
程序输出:
Constructor int args
int&String args
Default Constructor
count = 20,s = rose