gpt4 book ai didi

class - Kotlin 中的这些类有什么区别?

转载 作者:行者123 更新时间:2023-12-02 08:03:57 24 4
gpt4 key购买 nike

我是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com