包、類、對象、成員的通路權限:
點選(此處)折疊或打開
- package spark{
- package navigation{
- private[spark] class Navigator{ //将Navigator的可見度擴充至spark,spark包下的所有包、類、對象都可以通路Navigator
- protected[navigation] def useStarChart() {} //被protected修飾,可以被Navigator以及它的子類(類似于java),以及navigation下的所有内容通路
- class LegOfJourney {
- private[Navigator] val distance =100
- }
- private[this] var speed = 200 //隻有本對象能通路,該類其它執行個體不能通路,類似于java中的private變量,而且沒有getter方法
- }
- }
- package launch{
- import navigation._ //因為launch與navigation平級,是以必須import
- object Vehicle {
- private[launch] val guide = new Navigator //因為launch是spark的子包。是以可以通路
- }
- }
- }
伴生類、伴生對象的通路權限:
點選(此處)折疊或打開
- class PackageOps_Advanced{
- import PackageOps_Advanced.power
- private def canMakeItTrue = power >10001 //伴生類可以通路伴生對象裡面的所有内容
- }
- object PackageOps_Advanced{
- private def power = 10000
- def makeItTrue(p : PackageOps_Advanced): Boolean = { //伴生對象可以通路伴生類的所有内容
- val result = p.canMakeItTrue
- result
- }
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1845817/,如需轉載,請注明出處,否則将追究法律責任。
轉載于:http://blog.itpub.net/28912557/viewspace-1845817/