scala08.對象

8.1單例對象

Scala中沒有靜態(tài)方法和靜態(tài)字段,你可以用object 這個語法結(jié)構(gòu)來達到同樣的目的。
對象的構(gòu)造器在該對象第一次使用時調(diào)用。如果對象沒有使用過,他的構(gòu)造器也不會被執(zhí)行。
對象基本具有類的所有特性,就是一點,你不能設(shè)置構(gòu)造器的參數(shù)。

8.2伴生對象

Java中會有類既有實例方法又有靜態(tài)方法的類。Scala中可以通過伴生對象進行實現(xiàn)。
類和它的伴生對象可以相互訪問私有特性,他們必須存在同一個源文件中。必須同名

8.3Apply方法

我們通常會定義和使用對象的apply方法,當遇到如下形式時:
Object(參數(shù)1、參數(shù)2、參數(shù).…)會調(diào)用apply方法。
Apply方法一般都聲明在伴生對象中。

8.4應(yīng)用程序?qū)ο?/h3>

每一個Scala應(yīng)用程序都需要從一個對象的main方法開始執(zhí)行,這個方法的類型為Array[String]=>Unit。

或者擴展一個App特質(zhì):

8.5枚舉

Scala中沒有枚舉類型,定義一個擴展Enumeration類的對象,并以value調(diào)用初始化枚舉中的所有可能值。

import org.scalatest.FunSuite

class Chapter07Test extends FunSuite {

  test("core01") {
    //Scala中沒有靜態(tài)方法和靜態(tài)字段,你可以用object

  }
  test("core02") {
    //伴生對象
  }
  test("core03") {
    //Apply方法
  }
  test("core04") {
    //應(yīng)用程序?qū)ο?    //繼承app特質(zhì)
  }
  test("core05") {
    //Scala中沒有枚舉類型,定義一個擴展Enumeration類的對象,并以value調(diào)用初始化枚舉中的所有可能值。
  }

}

//Java中會有類既有實例方法又有靜態(tài)方法的類。Scala中可以通過伴生對象進行實現(xiàn)。
//類和它的伴生對象可以相互訪問私有特性,他們必須存在同一個源文件中。必須同名
object Chapter07Test {
  //單例對象
  private var lastName = "jim"
  val abc = "green"

  //  Apply方法一般都聲明在伴生對象中
  def apply() = new Chapter07Test {}
}

//擴展一個App特質(zhì)
object Hello extends App {
  println("HelloWorld")
}
//枚舉類
object TrafficLightColor extends Enumeration {
  val Red, Yellow, Green = Value
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容