Kotlin:为什么构造函数参数默认具有“内部”可见性?
如果我们有一个class级:
class Customer(val customerName: String) { }
它的构造参数customerName
可以通过getCustomerName()
来访问(因为它也是一个属性)。 如果我们想限制访问这个属性,我们应该声明它是private
。
由于在很多情况下来自Java世界(如果一个类不打算成为数据类),从构造函数参数中分配的字段是用于私人/保护使用,感觉就像在Kotlin中明确声明它们是private
的。
另外,Kotlin类是默认的最终的,所以为什么不遵循这个原则的属性? 我错过了什么吗?
根据我们的经验以及对现有代码库的实证研究, internal
/ public
可见性对于属性来说是最好的。
另外,Kotlin类是默认的最终的,所以为什么不遵循这个原则的属性? 我错过了什么吗?
属性在默认情况下是final
的,也就是说,除非明确地提供open
修饰符,否则它们不能被覆盖。