Skip to Content
Kotlin 编程实践
book

Kotlin 编程实践

by Ken Kousen
July 2020
Intermediate to advanced
235 pages
3h 37m
Chinese
China Machine Press
Content preview from Kotlin 编程实践
Kotlin
中的面向对象编程
59
}
var priority = validPriority(_priority)
set(value) {
field = validPriority(value)
}
private fun validPriority(p: Int) =
p.coerceIn(MIN_PRIORITY, MAX_PRIORITY)
}
参数 _priority 不是一个属性,但是它也不仅仅是一个构造函数的参数。它用于初始
化实际的属性 priority,并评估自定义 setter,以使其每次更改时都强制进入所需的
范围。注意,这里的术语 value 只是一个虚拟名称。你可以将其改成任何喜欢的名字,
就像使用任何函数参数一样。
参阅
3.1 节讨论了在 Task 示例中使用常量。
3.3
定义数据类
问题
如何创建一个表示实体的类,并完整实现 equalshashCodetoString 以及其他
函数。
解决方案
在定义类时使用 data 关键字。
讨论
Kotlin 提供关键字 data 来指明特定类的目的是保存数据。在 Java 中,当这样的类表示
来自数据库表的信息时,它被称为
实体
,而数据类的概念与之相似。
将关键字 data 添加到类定义中会使编译器生成一系列函数,包括一致性的 equals
hashCode 函数,用于显示类与属性值的 toString 函数、copy 函数,以及用于解构
component 函数。
例如,考虑 Product 类:
60
3
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

GraphQL 学习指南

GraphQL 学习指南

Eve Porcello, Alex Banks
Java 技术手册(原书第7版)

Java 技术手册(原书第7版)

Benjamin J. Evans, David Flanagan
Python机器学习基础教程

Python机器学习基础教程

Andreas C. Müller, Sarah Guido

Publisher Resources

ISBN: 9787111659624