从某个构造函数调用重载版的另一个构造函数
如果有某个重载版的构造函数除了不能处理不同类型的参数之外,可以处理所有的工作。那要怎么办?你不想让相同的程序代码出现在每个构造函数中,所以你想把程序代码只摆在某个构造函数中(包括对super()的调用)。如此一来,所有的构造函数都会先调用该构造函数,让它来执行真正的构造函数。这很容易,只要调用this()或this(aString)或this(27, x)就行。换句话说,this就是当前对象本身的引用。
使用this()来从某个构造函数调用同一个类的另外一个构造函数。this()只能用在构造函数中,且必须是第一行语句。super()与this()不能同时调用!
class Mini extends Car { Color color; public Mini() { this(Color, Red); //以默认的颜色调用真正的构造函数 } public Mini(Color c) { super("Mini"); //这才是真正的构造函数 color = c; //初始化动作 } }