📜  Scala 中的访问修饰符(1)

📅  最后修改于: 2023-12-03 15:05:04.539000             🧑  作者: Mango

Scala 中的访问修饰符

访问修饰符在 Scala 中用于控制类、对象和成员的访问权限。Scala 中共有三种访问修饰符:public、private 和 protected。

public

在 Scala 中,如果不指定任何访问修饰符,则默认为 public。public 修饰符表示该成员可以在任何地方访问,包括外部应用程序。

class MyClass {
  def sayHello(): Unit = {
    println("Hello World!")
  }
}

val obj = new MyClass()
obj.sayHello() // 输出 Hello World!
private

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

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。私有成员只能在类或对象内访问,受保护成员只能在类或子类中访问。