建构子﹝Constructor﹞
当建立一个 class 的实体,在初始化的时候,会呼叫建构子。
例如:
复制程式
public class Test{
private int a;
public Test(){
a = 1;
}
public static void main(String[] args){
Test test = new Test();
}
}
在 new Test() 的时候,就是建立一个 Test class 的实体,并且此实体执行了 public Test() 这个 Constructor,将变数 a 的数值设定成 1。
建构子也可以设定需要参数:
复制程式
public class Test{
private int a;
private int b;
public Test(){
}
public Test(int a,int b){
this.a = a;
this.b = b;
}
public static void main(String[] args){
Test test = new Test(1,2);
}
}
这样子,在建立 Test 实体 class 的时候,就会设定 a 与 b 这两个变数的值。
当你没有写任何 Constructor 的时候,编译器会自动帮你产生一个最基本的,例如说:
复制程式
public class Test{
public static void main(String[] args){
Test test = new Test();
}
}
编译器会自动补上一个 Constructor,变成:
复制程式
public class Test{
public Test(){
}
public static void main(String[] args){
Test test = new Test();
}
}
注意,若你有撰写一个需要参数的 Constructor,但是没有写一个不需要参数的 Constructor,在建立这个 class 实体的时候,就一定要输入需要的参数,不可以没有输入,因为编译器若发现你有建立需要参数的 Constructor 但是没有预设的 Constructor,他不会帮你建立。
以下是错误示范:
复制程式
public class Test{
private int a;
public Test(int a){
this.a = a;
}
public static void main(String[] args){
Test test = new Test();//这行不会通过编译
}
}
以上是我的经验,若有错误请指正。