gpt4 book ai didi

kotlin - 在 Kotlin 中访问私有(private)方法

转载 作者:行者123 更新时间:2023-12-02 13:26:35 37 4
gpt4 key购买 nike

我目前正在自学 Kotlin,对可见性的工作方式有点困惑。

class Test(val name: String) {
private fun sayName() {
println(name)
}

fun askName(test: Test) {
test.sayName()
}
}

val test1 = Test("one")
val test2 = Test("two")

test1.askName(test2)
结果是“二”。为什么我可以访问另一个实例的私有(private)方法? sayName() 方法不应该只能从它自己的实例中访问吗?

最佳答案

Kotlin 中的可见性与许多现代编程语言(包括 Java)中的工作方式相同 - 它影响哪些类型可以看到给定成员,而不是哪些实例。 sayName仅在定义它的实际类中可见,但编译器不必检查 test参数是当前实例或另一个实例;这将毫无意义,因为作为类(class)的创建者,您非常清楚何时访问和使用它,如果您愿意,您可以自己进行限制。
关于某些语言的子类型化可能会有一些异常(exception),但这是它的要点。

关于kotlin - 在 Kotlin 中访问私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63862759/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com