本章将引导您完成Scala访问修饰符,包,类或对象的成员可以使用访问修饰符标签为私有private和受保护protect,或为公共访问public的。
私有修饰符表示只有当前类或对象可访问。
class Outer { class Inner { private def f() { println("f") } class InnerMost { f() //OK } } (new Inner).f() //Error: f 不可访问 }
在Scala中,访问权限(new Inner), f()是非法的,因为f在Inner中被声明为私有,并且访问不是从Inner类内部进行的。
链接:https://www.learnfk.comhttps://www.learnfk.com/scala/scala-access-modifiers.html
来源:LearnFk无涯教程网
protected 修饰符表示只有当前类或子类可访问。
package p { class Super { protected def f() { println("f") } } class Sub extends Super { f() } class Other { (new Super).f() //Error: f 不可访问 } }
Sub类中对f的访问是可以的,因为f在" Super"类中声明为受保护,并且" Sub"类是Super的子类。
与private和protected不同,不需要为Public成员指定Public关键字,public修饰符表示所有类都可以访问。
class Outer { class Inner { def f() { println("f") } class InnerMost { f() //OK } } (new Inner).f() //OK 因为现在 f() 是公开的 }
Scala中的访问修饰符可以通过限定符进行扩充,形式private [X]或protected [X]的修饰符表示访问是private私有的或protected 受保护的,最多X个,其中X指定一些封闭的包,类或单例对象 。
package society { package professional { class Executive { private[professional] var workDetails=null private[society] var friends=null private[this] var secrets=null def help(another : Executive) { println(another.workDetails) println(another.secrets) //ERROR } } } }
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)