Kotlin中的课程属性应该是私有的吗?如何访问它们?

Ser*_*ion 3 kotlin

阿罗哈!在阅读Kotling语言参考时,我注意到从不使用类的属性的关键字"private"(总是默认为public).它还说自动生成getter和setter.所以我创建了类并将其字段设为私有.但是,当我创建类的对象时,我看不到字段,也没有可用的setter和getter,除非我自己编写它们.那么这里的规则是什么?保持可见性修饰符默认(公共)或将它们设为私有并提供mutator方法?谢谢.

yol*_*ole 10

属性的整个概念是它将字段及其访问器封装在单个实体中.如果您需要能够从外部访问和修改类的属性,则应将该属性保持公开.如果您需要能够从外部读取但不能更新它,则可以使用私有访问器定义公共属性.

将默认访问器更改为自定义访问器不会影响您的类的客户端,因为编译器将始终生成访问器方法,并且该类的客户端将使用这些方法,并且不会直接访问基础字段.

您永远不应该编写与属性访问器分开的显式getter或mutator方法.

  • 您应该了解字段和属性之间的区别.基本上:Property = field + getter(+ setter,如果是可变的). (7认同)