Kotlin 可见性控制


在本章中,我们将了解 Kotlin 语言中可用的不同修饰符。 访问修饰符 用于限制应用程序中使用的变量、方法和类的使用。与其他 OOP 编程语言一样,此修饰符适用于多个位置,例如在类头或方法声明中。 Kotlin 中有四种访问修饰符可用。

Private


可以使用私有修饰符声明类、方法和包。一旦任何东西被声明为私有,那么它就可以在其直接范围内访问。例如,可以在该特定文件中访问私有包。私有类或接口只能由其数据成员等访问。

private class private例子 {
    private val i = 1
    private val doSomething() {
    }
}

在上面的例子中,类 “私人例子” 并且变量 i 都只能在同一个 Kotlin 文件中访问,其中提到了它们,因为它们都在声明块中被声明为私有。

受保护


Protected 是 Kotlin 的另一个访问修饰符,它目前不可用于顶级声明,就像任何包都不能被保护一样。受保护的类或接口仅对其子类可见。

class A() {
    protected val i = 1
}
class B : A() {
    fun getValue() : Int {
        return i
    }
}

在上面的例子中,变量 “i” 被声明为受保护的,因此,它只对其子类可见。

Internal


Internal 是 Kotlin 中新增的一个修饰符。如果有任何内容被标记为内部,那么该特定字段将在内部字段中。内部包仅在实现它的模块内部可见。内部类接口仅对存在于同一包或模块中的其他类可见。在下面的例子中,我们将看到如何实现一个内部方法。

class internal例子 {
    internal val i = 1
    internal fun doSomething() {
    }
}

在上面的例子中,名为“doSomething”的方法和变量被称为内部,因此,这两个字段只能在声明它的包内访问。

Public


公共修饰符可从项目工作区的任何地方访问。如果未指定访问修饰符,则默认情况下它将在公共范围内。在我们之前的所有示例中,我们都没有提到任何修饰符,因此,它们都在公共范围内。以下是一个示例,以了解有关如何声明公共变量或方法的更多信息。

class public例子 {
    val i = 1
    fun doSomething() {
    }
}

在上面的例子中,我们没有提到任何修饰符,因此所有这些方法和变量默认都是公开的。