Scala_修饰符

Scala访问修饰符和Java基本同样,分别有private、protected、public。默认缺省状况下,Scala对象的访问级别是public。
私有成员:用private关键字修饰的成员仅在包含了成员定义的类内部或对象内部可见。Java中容许这两种访问,它容许外部类访问内部类的私有成员。
 1 class test{}class Outer{
 2     class Inner{
 3         private def p(){
 4             println( "p")
 5         }
 6         class InnerMost{
 7             p() //正确
 8         }
 9     }
10     //(new Inner).f("Outer") //错误,外层类不能访问被嵌套类的私有成员,Java中支持
11 }
保护成员:Scala比Java中更严格。只容许保护成员在定义了该成员的类的子类中被访问。Java中除定义了该保护成员的类的子类中可被访问,同一个包下的其余类也能够进行访问。
 1 package p{
 2     class Supper{
 3         protected def p(){
 4             println("p")
 5         }        
 6     }
 7     
 8     class Sub extends Supper{
 9         p() //正确
10     }
11     
12     class other{
13         // (new Supper).p() //错误,只有子类能够。java支持,protected成员在同包下类中也可访问
14     }
15 }
公共成员:默认public,这样的成员在任何地方均可以被访问。
 1 class test{}class Outer{
 2     class Inner{
 3         def p(){
 4             println( "p")
 5         }
 6         class InnerMost{
 7             p() //正确
 8         }
 9     }
10     //(new Inner).f("Outer") //正确 
11 }

做用域保护java

Scala中访问修饰符能够经过使用限定词强调。格式private[x] protected[x]this

X指某个所属的包、类、单例对象。private[x],读做“这个成员除了对[]中的类或[]中的包中的类及它们的伴生对象可见外,对其余全部类都是privatespa

 

Private[this] val x,只能被this访问,即只能被当前对象访问code

Private val x,能够被另外一个对象访问orm

Java的访问权限表对象

不写(default)默认:包内可访问blog

Private私有:类内可访问ci

Protected保护:包内和子类可访问作用域

Public公有:均可访问ast

相关文章
相关标签/搜索