我是 Kotlin 的初学者! 我们能解释一下 Kotlin 中这些类之间的区别吗
class Person(val name: String, val age: Int)
class Person(name: String, age: Int)
class Person(var name: String,var age: Int)
我如何在 Kotlin 中为数据类添加 getter 和 setter?
最佳答案
首先你应该尝试阅读手册中的区别:
https://kotlinlang.org/docs/reference/data-classes.html
https://kotlinlang.org/docs/reference/classes.html
但是让我们试着解释一下:
class Person(val name: String, val age: Int)
Kotlin 编译器将为两个构造函数参数生成相应的存储值的字段,并将生成相关的 getter。由于关键字 val
,这些值是不可变的,因此不会有任何 setter。
class Person(name: String, age: Int)
参数仅传递给构造函数,但不存储为字段。所以也不会有 getter 和 setter。
class Person(var name: String, var age: Int)
与第一个示例一样,值存储在生成的字段中。但是由于关键字 var
,这些值是可变的,因此编译器将生成 getter 和 setter。
data
是放在 class
声明前面的附加(可选)关键字。除了 getter 和 setter 之外,这将生成一个 toString
方法打印所有属性的值及其名称和一个 hashCode
方法将每个值都考虑在内。由于为 data
类生成了 getter 和 setter,因此您无需手动添加它们。
Kotlin 在很大程度上减少了 Java 开发人员需要完成的手动工作,这些工作由 Kotlin 的编译器完成。
关于class - Kotlin 中的这些类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53783311/