• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      怎樣創建單例和半生對象?

      更新時間:2021年07月16日17時01分 來源:傳智教育 瀏覽次數:

      好口碑IT培訓

      在Scala中,沒有靜態方法或靜態字段,所以不能用類名直接訪問類中的方法和字段,而是創建類的實例對象去訪問類中的方法和字段。但是,Scala中提供了object這個關鍵字用來實現單例模式,使用關鍵字object創建的對象為單例對象。

      創建單例對象的語法格式如下:

      object objectName

      上述語法格式中,關鍵字object主要用于創建單例對象;objectName為單例對象的名稱。

      下面,創建一個單例對象SingletonObject,代碼如文件1所示。

      文件1 Singleton.scala

         //單例對象
      
         object SingletonObject {
      
           def hello() {
      
             println("Hello, This is Singleton Object")
      
           }
      
         }
      
         object Singleton {
      
           def main(args: Array[String]) {
      
             SingletonObject.hello()  
      
          }
      
        }
      上述代碼中,第2-4行代碼是創建了一個單例對象SingletonObject,并在該對象中定義了一個方法hello();第8-9行代碼是主方法main(),并在主方法中使用單例對象訪問自己的方法hello()。

      運行上述文件1中的代碼,效果如圖1所示。

      單例對象

       圖1 單例對象的運行結果

      在Scala中,在一個源文件中有一個類和一個單例對象,若單例對象名與類名相同,則把這個單例對象稱作伴生對象(companion object);這個類則被稱為是單例對象的伴生類(companion class)。類和伴生對象之間可以相互訪問私有的方法和字段。

      下面,定義一個伴生對象Dog,演示操作類中的私有方法和字段。具體代碼如文件2所示。

      文件2 Dog.scala

         class Dog {
      
           val id = 666
      
           private var name = "二哈"
      
           def printName(): Unit ={
      
             //在Dog類中可以訪問伴生對象Dog的私有字段
      
             println(Dog.CONSTANT + name)
      
           }
      
         }
      
         //伴生對象
      
        object Dog{
      
          //伴生對象中的私有字段
      
          private var CONSTANT = "汪汪汪。。。"
      
          //主方法
      
          def main(args: Array[String]): Unit = {
      
            val dog = new Dog
      
            //訪問私有的字段name
      
            dog.name = "二哈666"
      
            dog.printName()
      
          }
      
        }

      上述代碼中,第1-6行代碼是創建了一個類Dog,并在該類中定義了兩個字段id、name以及一個方法printName();第10-18行代碼是創建一個伴生對象Dog,并在該對象中定義一個字段CONSTANT,在主方法main中,創建Dog類的實例對象,再使用實例對象訪問類中的字段和方法。

      運行上述文件2中的代碼,效果如圖2所示。

      伴生對象的創建運行

      圖2 伴生對象訪問類中方法和字段的運行結果





      猜你喜歡:

      js如何將json字符串轉換為json對象?

      Selenium和PhantomJS如何結合使用?

      JsonPath基本語法介紹:JsonPath用法詳解

      傳智教育HTML前端與移動開發高手班

      0 分享到:
      神马影院我不卡