在Scala的類別裡頭,有時候我們需要多個建構式來定義類別,除了主建構式外的其他建構式,我們就稱為輔助建構式。
輔助建構式以def this...
開頭
另外,輔助建構式有以下幾個規定:
Each auxiliary constructor must have a different signature (different parameter lists)
Each constructor must call one of the previously defined constructors
也就是說:
1.每個Auxiliary constructor必須有不同的參數列表
2.每個Auxiliary cinstructor必須呼叫前面定義的建構式(
主建構式或是其他的輔助建構式)
舉例如下:
val sauce = "tomato"
val cookingTime = "12"
class Pasta(sauce: String, cookingTime: Int){
def this(sauce: String) = this(sauce, 0)
def this(cookingTime: Int) = this("pesto", cookingTime)
}
接著我們就可以用以下幾個方式來建立Pasta實體
val p1 = new Pasta(sauce, cookingTime)
val p2 = new Pasta(sauce)
val p3 = new Pasta(cookingTime)
由於Scala不允許有靜態成員(static member),所以Scala提供了單例物件(Singleton objects)。
object
舉例:
object Logger:
def info(message: String): Unit = println(s"INFO: $message")
今天先介紹到這邊