Scala 访问修饰符
Scala 访问修饰符
访问修饰符用于定义数据和我们的代码对外界的可访问性。您可以对类、特征、数据成员、成员方法和构造函数等进行可访问的应用。Scala 提供了对所有访问的最低可访问性。您可以根据您的应用需求对您的代码应用任何访问修饰符。
Scala 仅提供三种类型的访问修饰符,如下所示:
无修饰符
Protected
Private
在scala中,如果你没有提到任何访问修饰符,它被视为没有修饰符。
下表包含有关访问修饰符的可访问性的信息。
Modifier |
Outside package |
Package |
Class |
Subclass |
Companion |
No access modifier |
Yes |
Yes |
Yes |
Yes |
Yes |
Protected |
NO |
NO |
Yes |
Yes |
Yes |
Private |
NO |
NO |
Yes |
NO |
Yes |
Scala 示例: 私有访问修饰符
在 Scala 中,私有访问修饰符用于使数据只能在声明它的类中访问。它是最受限制的,并将您的数据保持在有限的范围内。私有数据成员不会继承到子类中。
class AccessExample{
private var a:int = 10
def show(){
println(a)
}
}
object MainObject{
def main(args:Array[String]){
var p = new AccessExample()
p.a = 12
p.show()
}
}
输出:
error: variable a in class AccessExample cannot be accessed in AccessExample
p.a = 12
^
one error found
Scala 示例: 受保护的访问修饰符
受保护的访问修饰符只能在类、子类和伴随对象中访问。声明为受保护的数据成员在子类中继承。让我们看一个例子。
class AccessExample{
protected var a:int = 10
}
class Subclass extends AccessExample{
def display(){
println("a = "+a)
}
}
object MainObject{
def main(args:Array[String]){
var s = new SubClass()
s.display()
}
}
输出:
Scala 示例: No-Access-Modifier
在 Scala 中,当您不提及任何访问修饰符时,它被视为无访问修饰符。它与java中的public相同。它的限制最少,可以从包内或包外的任何地方轻松访问。
class AccessExample{
var a:int = 10
def show(){
println(" a = "+a)
}
}
object MainObject{
def main(args:Array[String]){
var a = new AccessExample()
a.show()
}
}
输出: