📅  最后修改于: 2023-12-03 15:05:04.539000             🧑  作者: Mango
访问修饰符在 Scala 中用于控制类、对象和成员的访问权限。Scala 中共有三种访问修饰符:public、private 和 protected。
在 Scala 中,如果不指定任何访问修饰符,则默认为 public。public 修饰符表示该成员可以在任何地方访问,包括外部应用程序。
class MyClass {
def sayHello(): Unit = {
println("Hello World!")
}
}
val obj = new MyClass()
obj.sayHello() // 输出 Hello World!
private 修饰符表示该成员只能在类或对象内访问,包括它们的伴生对象。私有成员对外部应用程序是不可见的。
class MyClass {
private val mySecretNumber: Int = 42
def displaySecretNumber(): Unit = {
println(s"My secret number is ${mySecretNumber}")
}
}
val obj = new MyClass()
obj.displaySecretNumber() // 输出 My secret number is 42
obj.mySecretNumber // 无法访问,会产生编译错误
protected 修饰符表示该成员只能在类或子类中访问,对于外部应用程序是不可见的。可以通过扩展该类来访问受保护的成员。
class MyClass {
protected val myProtectedNumber: Int = 42
}
class MyChildClass extends MyClass {
def displayProtectedNumber(): Unit = {
println(s"My protected number is ${myProtectedNumber}")
}
}
val obj = new MyClass()
val childObj = new MyChildClass()
obj.myProtectedNumber // 无法访问,会产生编译错误
childObj.displayProtectedNumber() // 输出 My protected number is 42
访问修饰符在 Scala 中用于控制类、对象和成员的访问权限。Scala 中共有三种访问修饰符:public、private 和 protected。默认访问修饰符为 public。私有成员只能在类或对象内访问,受保护成员只能在类或子类中访问。