Scalaのコンストラクタオーバーロード

Scalaのクラスでコンストラクタを何個も定義できる!!
「this」っていうメソッドを定義するとコンストラクタになるんだー
今の今まで知らなかった。。。
コンストラクタは1つしか定義できないと思ってました。びっくりした。

class Nanika(id: Int, name: String) {
  def this(id: Int) = this(id, "名無しさん")
  def this() = this(0)
  override def toString = id + "," + name
}
 
object Main {
  def main(args:Array[String]) {
    println(new Nanika)               // 0,名無しさん
    println(new Nanika(1))            // 1,名無しさん
    println(new Nanika(2, "syttru"))  // 1,syttru
  }
}