日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scala apply方法 笔记

發布時間:2025/3/11 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scala apply方法 笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文出處:http://blog.csdn.net/pzw_0612/article/details/48576569

-----------------------------------------------------

Scala比Java更面向對象的一個方面是Scala沒有靜態成員。替代品是,Scala有單例對象:singleton object。

當單例對象與某個類共享同一個名稱時,他被稱作是這個類的伴生對象:companion object。你必須在同一個源文件里定義類和它的伴生對象。類被稱為是這個單例對象的伴生類:companion class。類和它的伴生對象可以互相訪問其私有成員。

定義單例對象不是定義類型(在Scala的抽象層次上說)

類和單例對象間的一個差別是,單例對象不帶參數,而類可以。因為你不能用new關鍵字實例化一個單例對象,你沒機會傳遞給它參數。每個單例對象都被作為由一個靜態變量指向的虛構類:synthetic class的一個實例來實現,因此它們與Java靜態類有著相同的初始化語法。Scala程序特別要指出的是,單例對象會在第一次被訪問的時候初始化。

Scala 的apply 有2 張形式,一種是 伴生對象的apply ,一種是 伴生類中的apply,下面展示這2中的apply的使用。

示例代碼:

package day26class Apply5 {}class ApplyTest {def apply() = println("I am into class ApplyTest!!!")def haveATry: Unit = {println("have a try on apply")} }object ApplyTest {def apply() = {println("I am into object ApplyTest!!!")} }object Apply5 {def main(args: Array[String]): Unit = {val array = Array(1, 2, 3, 4)val a =new ApplyTest()a.haveATrya() // 這里就是 class 中 apply使用val b=ApplyTest()// 這里就是 object 中 apply使用} }





運行結果

have a try on apply I am into class ApplyTest!!! I am into object ApplyTest!!!

object apply 是一種比較普遍用法。 主要用來解決復雜對象的初始化問題。同時也是單例




總結

以上是生活随笔為你收集整理的scala apply方法 笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。