Scala中包类对象成员访问权限理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala中包类对象成员访问权限理解相关的知识,希望对你有一定的参考价值。
本文通过下面一个程序简单分析下包、类、对象访问权限的情况:
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,并将其访问权限升级为spark包下所有,意思是在spark包里面都可以访问该类,
如下面包launch里面就访问了类Navigator,private[launch] val guide = new navigation.Navigator。
在类Navigator中定义了方法useStartChar(),并将其的访问权限设置为navigation,这表明只能在包navigation里面访问该方法,如Test类中new Navigator().useStartChar()
private[this] var speed = 200,这个只能在类Navigator中访问,不能再该类其他类对象中访问。
本文出自 “DT_Spark大数据梦工厂” 博客,请务必保留此出处http://18610086859.blog.51cto.com/11484530/1774371
以上是关于Scala中包类对象成员访问权限理解的主要内容,如果未能解决你的问题,请参考以下文章