天天看點

scala快速入門系列【單例對象】

本篇作為scala快速入門系列的第十九篇部落格,為大家帶來的是關于單例對象的内容。

scala快速入門系列【單例對象】

單例對象

scala中沒有Java中的靜态成員,我們想要定義類似于Java的static變量、static方法,就要使用到scala中的單例對象——object。

定義單例對象

單例對象表示全局僅有一個對象(類似于Java static概念)

  • 定義單例對象和定義類很像,就是把class換成object
  • 在object中定義的成員變量類似于Java的靜态變量
  • 可以使用object直接引用成員變量

示例

  • 定義一個Dog單例對象,儲存狗有幾條腿
  • 在main方法中列印狗腿的數量

參考代碼

scala快速入門系列【單例對象】

在單例對象中定義成員方法

  • 在object中定義的成員方法類似于Java的靜态方法

示例

  • 設計一個單例對象,定義一個能夠列印分割線(15個減号)的方法
  • 在main方法調用該方法,列印分割線

參考代碼

scala快速入門系列【單例對象】

工具類案例

需求

  • 編寫一個DateUtil工具類專門用來格式化日期時間
  • 定義一個方法,用于将日期(Date)轉換為年月日字元串,例如:2030-10-05

步驟

  • 定義一個DateUtil單例對象,定義日期格式化方法(format)
  • 使用SimpleDateFormat将日期轉換為字元串

參考代碼

scala快速入門系列【單例對象】

main方法

scala和Java一樣,如果要運作一個程式,必須有一個main方法。而在Java中main方法是靜态的,而在scala中沒有靜态方法。在scala中,這個main方法必須放在一個單例對象中。

定義main方法

main方法

scala快速入門系列【單例對象】

示例

  • 建立一個單例對象,在該單例對象中列印"hello, scala"

參考代碼

scala快速入門系列【單例對象】

實作App Trait 來定義入口

建立一個object,繼承自App Trait(特質),然後将需要編寫在main方法中的代碼,寫在object的構造方法體内。

scala快速入門系列【單例對象】

示例

  • 繼承App特質,來實作一個入口。同樣輸出"hello, scala"

參考代碼

scala快速入門系列【單例對象】

本期的内容分享就到這裡了,喜歡的小夥伴們記得點個贊,持續關注喲~下一篇将為大家帶來伴生對象的相關内容,敬請期待٩(๑>◡<๑)۶