Kotlin:为什么构造函数参数有"内部"可见性默认情况下

时间:2015-03-09 14:12:13

标签: constructor kotlin visibility

如果我们有一个班级:

class Customer(val customerName: String) { }

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

由于在许多情况下来自Java世界(并且如果一个类不是数据类),从构造函数参数分配的字段用于私有/受保护的使用,感觉就像是一个额外的努力来明确地声明它们{{1}在Kotlin。

此外,Kotlin类默认为final,那么为什么不遵循这个属性原则呢?我错过了什么吗?

1 个答案:

答案 0 :(得分:7)

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

  

此外,Kotlin类默认为final,那么为什么不遵循这个属性原则呢?我错过了什么吗?

默认情况下,属性为final,即除非您明确提供open修饰符,否则无法覆盖它们。