如果我们有一个班级:
class Customer(val customerName: String) { }
它的构造函数参数customerName
可以通过getCustomerName()
访问(因为它也是一个属性)。如果我们想限制对此属性的访问,我们应将其声明为private
。
由于在许多情况下来自Java世界(并且如果一个类不是数据类),从构造函数参数分配的字段用于私有/受保护的使用,感觉就像是一个额外的努力来明确地声明它们{{1}在Kotlin。
此外,Kotlin类默认为final,那么为什么不遵循这个属性原则呢?我错过了什么吗?
答案 0 :(得分:7)
根据我们的经验,以及对现有代码库的一些实证研究,internal
/ public
可见性最适合于属性。
此外,Kotlin类默认为final,那么为什么不遵循这个属性原则呢?我错过了什么吗?
默认情况下,属性为final
,即除非您明确提供open
修饰符,否则无法覆盖它们。