包、类、对象、成员的访问权限:
伴生类、伴生对象的访问权限:
点击(此处)折叠或打开
- 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/