溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Scala中包、類、對象、成員訪問權(quán)限理解

發(fā)布時間:2020-07-20 01:02:58 來源:網(wǎng)絡(luò) 閱讀:869 作者:Spark_2016 欄目:大數(shù)據(jù)

本文通過下面一個程序簡單分析下包、類、對象訪問權(quán)限的情況:

package spark {
  package navigation {
    private[spark] class Navigator {
      protected[navigation] def useStartChar() = println("navigation")
      class LegOfJourney {
        private[Navigator] val distance = 100
      }
      private[this] var speed = 200
    }
    
    class Test{
       new Navigator().useStartChar()
    }
  }

  package launch {
    object Vehicle {
        private[launch] val guide = new navigation.Navigator
    }
  }
}

首先先分析下上面程序,spark包下有兩個包navigation和launch,在包navigation里面定義了類Navigator,并將其訪問權(quán)限升級為spark包下所有,意思是在spark包里面都可以訪問該類,

如下面包launch里面就訪問了類Navigator,private[launch] val guide = new navigation.Navigator。

在類Navigator中定義了方法useStartChar(),并將其的訪問權(quán)限設(shè)置為navigation,這表明只能在包navigation里面訪問該方法,如Test類中new Navigator().useStartChar()

private[this] var speed = 200,這個只能在類Navigator中訪問,不能再該類其他類對象中訪問。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI