Kotlin:为什么构造函数参数默认具有“内部”可见性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin:为什么构造函数参数默认具有“内部”可见性?相关的知识,希望对你有一定的参考价值。

如果我们有一个班级:

class Customer(val customerName: String) { }

它的构造函数参数qazxsw poi可以通过qazxsw poi访问(因为它也是一个属性)。如果我们想限制对此属性的访问,我们应该将其声明为customerName

由于在许多情况下来自Java世界(并且如果一个类不打算成为数据类),从构造函数参数分配的字段用于私有/受保护的使用,感觉就像在Kotlin中明确地声明它们getCustomerName()一样。

此外,默认情况下,Kotlin类是最终的,那么为什么不遵循这个属性的原则呢?我错过了什么吗?

答案

根据我们的经验,以及对现有代码库的一些实证研究,private / private可见性对于属性是最佳的。

此外,默认情况下,Kotlin类是最终的,那么为什么不遵循这个属性的原则呢?我错过了什么吗?

默认情况下属性为internal,即除非明确提供public修饰符,否则不能覆盖它们。

以上是关于Kotlin:为什么构造函数参数默认具有“内部”可见性?的主要内容,如果未能解决你的问题,请参考以下文章