📅  最后修改于: 2023-12-03 15:32:31.506000             🧑  作者: Mango
在 Kotlin 中,访问修饰符用于控制编译器和其他程序中代码的可见性。可见性修改器包括以下四种:public、private、internal 和 protected。
在 Kotlin 中,如果一个类、方法或属性没有显式的访问修饰符,那么它默认是 public 的。Public 元素在任何地方都是可见的,包括其它库中。
// 定义一个 public 类
class Example {
// 定义一个 public 方法
fun publicFunction() {
// 访问另一个 public 方法
this.sayHello()
}
// 定义一个 private 方法
private fun sayHello() {
println("Hello Kotlin!")
}
}
fun main() {
// 创建 Example 实例
val example = Example()
// 调用 public 方法
example.publicFunction()
}
private 修饰符用于指定类、方法或属性的访问范围仅限于该类内部。它不能在同一文件的其他类中可见。
class Example {
private val secret = "My secret"
fun displaySecret() {
println(secret)
}
}
fun main() {
val example = Example()
// 这个数据成员是被私有化的,不能在 main() 中访问
// println(example.secret)
// 只有类内部可以访问该数据成员
example.displaySecret()
}
internal 修饰符意味着该元素在该模块内的任何位置都可见。
// 模块内定义的类和函数可以使用 internal 修饰符
internal class Example {
internal fun display() {
println("Display message.")
}
}
fun main() {
val example = Example()
example.display()
}
protected 修饰符用于指定类方法或属性的访问范围仅限于该类及其子类中。可以在任何地方访问该类及其子类,但是不能在该类的同级类中访问。
open class A {
protected val i = 1
}
class B : A() {
fun getValue(): Int {
// 子类可以访问父类的 protected 数据成员
return i
}
}
fun main() {
val b = B()
// Unlike Java, cannot access 'i' from outside class or subclass
// println(b.i)
println(b.getValue())
}
以上为 Kotlin 可见性修改器的基础使用,可以通过合理的应用可见性修改器,提高代码的隐藏性、复用性和可读性。