鍍金池/ 教程/ Scala/ Scala單例和伴生對象
Scala方法重載
Scala模式匹配
Scala throw關鍵字
Scala提取器
Scala概述
Scala throws關鍵字
Scala finally塊
Scala正則表達式
Scala循環(huán)語句
Scala多線程
Scala函數(shù)
Scala final關鍵字
Scala方法覆蓋
Scala字符串
Scala線程實現(xiàn)
Scala異常處理
Scala類和對象
Scala數(shù)據(jù)類型
Scala單例和伴生對象
Scala構造函數(shù)
Scala教程
Scala Case類和對象
Scala繼承
Scala開發(fā)環(huán)境安裝配置
Scala運算符
Scala文件I/O
Scala線程方法
Scala變量
Scala try-catch語句
Scala基礎語法
Scala集合
Scala數(shù)組
Scala閉包
Scala訪問修辭符
Scala this關鍵字

Scala單例和伴生對象

單例(Singleton)對象是一個通過使用object關鍵字而不是使用class關鍵字聲明的對象。其它對象不需要調用在單例對象中聲明的方法。

在scala中,沒有靜態(tài)的概念。 所以scala創(chuàng)建一個單例對象來為程序的執(zhí)行提供入口點。
如果不創(chuàng)建單例對象,代碼也會成功編譯,但不會產(chǎn)生任何輸出。單例對象中聲明的方法可以全局訪問。單例對象可以擴展類和性狀。

Scala單例對象示例

object Singleton{  
    def main(args:Array[String]){  
        SingletonObject.hello()         // No need to create object.  
    }  
}  


object SingletonObject{  
    def hello(){  
        println("Hello, This is Singleton Object")  
    }  
}

將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
Hello, This is Singleton Object

Scala伴生對象

在scala中,當有一個與單例(singleton)對象同名的類時,它被稱為伴生(companion)類,單例(singleton)對象調用伴生對象。

伴生類及其伴隨對象必須在同一個源文件中定義。

Scala伴生對象示例

class ComapanionClass{  
    def hello(){  
        println("Hello, this is Companion Class.")  
    }  
}  
object Demo{  
    def main(args:Array[String]){  
        new ComapanionClass().hello()  
        println("And this is Companion Object.")  
    }  
}

將上面代碼保存到源文件:Demo.scala中,使用以下命令編譯并執(zhí)行代碼 -

D:\software\scala-2.12.3\bin>scalac Demo.scala
D:\software\scala-2.12.3\bin>scala Demo
Hello, this is Companion Class.
And this is Companion Object.