Kotlin中的class属性应该是私有的,如何访问它们?

塞米利翁

阿罗哈!在阅读《 Kotling语言参考》时,我注意到从未使用过用于类属性的关键字“ private”(始终默认为public)。它还说,getter和setter是自动生成的。因此,我创建了类,并将其字段设为私有。但是,当我创建类的对象时,除非我自己编写它们,否则将看不到这些字段,并且没有可用的setter和getter。那么这里的规则是什么?将可见性修改器保留为默认设置(公共)还是将其设置为私有并提供更改方法?谢谢你。

ole

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

构造函数中的变量在 Kotlin 中应该是私有的或公共的

注入的依赖项应该是公开访问的还是私有的?

前提方法应该是公开的还是私有的?

默认情况下,@ IBOutlet在iOS中应该是私有的还是内部的?

该合同应该是私有的,但是每个节点都可以访问分类帐

如果私有帮助器方法可以是静态的,则它们应该是静态的

注入的依赖项应该是只读字段还是私有属性

对于不应该是私有的功能,抛出了“在这种情况下是私有的”(GCC 5.3.0,C ++ 11)

嵌套在泛型类中的私有类也应该是泛型的吗?

pyspark:TypeError:条件应该是带有的列,否则

如何使用 c# 执行时间比较 2 个数组中的单个属性应该是最小的

如何在我的选择选项中有一个链接,但不是所有的都应该是一个链接

在IAR IDE中应该是“)”

评估一个静态私有变量(Java),它不应该是非法的吗?

它是强制性的实用程序类,应该是最终的私有构造函数吗?

如何定义属性在给定范围内应该是唯一的?

属性“ _touched”是私有的,只能在类“ AbstractControl”中访问。

属性“ X”是私有的,只能在类“ xyzComponent”中访问

角度错误 TS2341:属性“X”是私有的,只能在类中访问

在Java中有SonarQube,如何解决`只有结果的符号应该是examined`

Angular 构建产品错误“属性是私有的,只能访问”

如何解决““ TypeError:img应该是PIL图像。得到了<class'str'>”?

ML.NET:如何解决“具有MatrixColumnIndex角色的列应该是已知的基数U4密钥,而应该是'UInt32'”

System.InvalidOperationException: '代码应该是不可访问的'

Kotlin测试班应该是内部的吗?

您如何从私有方法或属性所属的类型之外访问它们?

Vim:如何声明具有特定名称的文件应该是某种文件类型?

“值”应该是Kendo Angular DatePicker中的有效JavaScript Date实例。

类属性必须是方法。应该是'(',但看到的是'='