建构子﹝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();//这行不会通过编译
  }
}
 以上是我的经验,若有错误请指正。