scala object類與普通class的區別與聯繫

原討論:http://stackoverflow.com/questions/1755345/scala-difference-between-object-and-class


class是定義是描述。它依照方法、或者其他組成元素定義一個類型。

object是單例。它是你所定義的類的唯一實例。每個代碼中的object都將創建一個匿名類,這個匿名類繼承了你聲明本object想要實現的類。

這個類在scala源代碼中不可見——所以,使用反射的方式來使用它!

class X {
  // 用法一:Prefix to call
  def m(x: Int) = X.f(x)

  // 用法二:Import and use
  import X._
  def n(x: Int) = f(x)
}

object X {
  def f(x: Int) = x * x
}

方法一:相當於Java中的靜態調用方式。但是scala沒有static的概念(static是反面向對象的概念)

方法二:應該算反射的使用方法?先引用,然後就直接調用了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章