# 深入構造器
> 構造器的最大用處就是創建對象。
如果在類定義中沒有顯式的定義一個構造器,則編譯器在編譯源文件時,會創建一個沒有參數、沒有方法體執行語句的空的構造器。
如果顯式的定義了一個構造器,則上述的空的構造器則不會存在。
在調用構造器創建對象的時候,系統會為每個對象的實例變量設置默認值
> 基本數據:數值型的為0,布爾類型的為false,char類型的為’\u0000’;
> 引用數據類型:null;
> 如果在方法中定義的局部變量:系統是不會對其設置默認值的,必須要顯式的通過賦值運算符=給變量賦值。
**通過構造器為成員變量定義初始化值,這也是構造器的最最重要的用途之一。**
## 構造器重載
如果需要在構造器中調用另外一個構造器,可以使用 this(params);
在構造器中調用構造器,必須把this(params)放在有效的執行語句第一行,而且不允許出現兩條this(params)語句。
~~~
public Client1(int age, String code, String name) {
this(age);
this.name = name;
}
public Client1(String code) {
this.code = code;
}
public Client1(int age) {
// 復用
if (age < 0 || age > 150) {
System.out.println("不合法的年齡數據");
} else {
this.age = age;
}
}
~~~