【2023】Kotlin教程

在这里插入图片描述

第二篇 面向对象与函数式编程

第10章 面向对象编程

Kotlin语言目前还是以面向对象编程为主,函数式编程为辅。面向对象是Kotlin是重要的特性之一。

10.8 数据类

有的时候需要一种数据容器在各个组件之间传递。数据容器只需要一些属性保存数据以就可以了,

例如之前我们写的User 类

class User(val name: String, var password: String)

但是这个User作为数据容器还不完善,最好重写Any的如下三个函数:

  • equals。.比较其他对象是否与当前对象“相等”,==运算符重载equals函数。

  • hashCode。返回该对象的哈希码值,可以提高对Hashtable和HashMap对象的访问效率。

  • toString。返回该对象的字符串表示。

【提示】Any是Kotlin所有类的根类,Kotlin中所有类都直接或间接继承自Any类。虽然重写Any的三个函数,也不是很麻烦,但是如果有很多个属性,代码量还是很多的。Kotlin为此提供了一种数据类(Data Classes)。

10.8.3 解构数据类

数据对象是一个数据容器,可以理解为多个相关数据被打包到一个对象中。解构进行相反的操作,是将数据对象拆开将内部的属性取出,赋值给不同的变量。

解构不仅仅适用于数据对象,也适用于集合对象。

举个栗子:

fun main() {

    val user1 = User("Tony", "123")

    // 解构
    val (name1, pwd1) = user1
    println(name1)
    println(pwd1)

    val (name2, _) = user1 // 省略结构password
    println(name2)

}

在这里插入图片描述

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐