本节讨论 Kotlin 的数据类、枚举类和密闭类。

数据类

数据类是 Kotlin 中很特殊的一种类,它可以将我们类中的成员变量自动的生成 getter/setter 方法,以及我们经常需要重写的 toString()、hashCode()、equals()、copy() 方法,而不需要像 Java Bean 一样需要我们手动去重写这些方法。

数据类的声明只需要在类的前面添加 data 关键字。

需要注意一点的是,数据类是 final 类型的,不能添加 open 关键字去修饰它!

枚举

枚举类

Kotlin 中也有枚举类,它的枚举类与 Java 中的使用是一致的:

但是在 Kotlin 中我们很少使用枚举类,而是使用它更加强大的“枚举类”,称之为密闭类。

密闭类

使用 sealed 关键字修饰一个类即可,另外密闭类是可以有子类的,但是密闭类的子类必须和密闭类写在同一个文件中,所以通常会把密闭类的子类写在类本身里面。它的用法也与枚举类的用法一致,示例如下:

密闭类最大一个特性在于它是可以有扩展它的子类的,并且它的子类也可以成为密闭类的一个选项,示例如下:

以上就是本节内容,欢迎大家关注~

快速上手 Kotlin 开发系列之数据类和枚举相关推荐

  1. java object类_快速上手 Kotlin 开发系列之与 Java 互调 (1)

    学习完基础语法之后,我们来学习下 Java 和 Kotlin 互相调用的问题 本节将介绍 Kotlin 与 Java 之间的语法变化 Kotlin 文件中的函数 首先让大家感到非常不适应的一点是,Ko ...

  2. java转安卓快吗_安卓Kotlin开发系列之Java快速转Kotlin

    原标题:安卓Kotlin开发系列之Java快速转Kotlin 自从Kotlin被宣布为Android开发语言的官方支持后,如今可谓是火的一塌糊涂,作为一名Android程序员,如何快速爬坑?今天为大家 ...

  3. WijmoJS 2019V1正式发布:全新的在线 Demo 系统,助您快速上手,开发无忧

    2019独角兽企业重金招聘Python工程师标准>>> 下载WijmoJS 2019 v1 WijmoJS是为企业应用程序开发而推出的一系列包含HTML5和JavaScript的开发 ...

  4. 几个特性,快速上手Kotlin

    前言 因为工作需要,所以最近大量的时间都用在了对Kotlin的提升上.所以最近的文章基本都是关于Kotlin的了内容. 这不是一个死扣细节的文章,而是一个帮助小伙伴们快速由Java(Android)转 ...

  5. AI专家一席谈:复用算法、模型、案例,AI Gallery带你快速上手应用开发

    摘要: 华为云社区邀请到了AI Gallery的负责人严博,听他谈一谈AI Gallery的设计初衷.经典案例以及未来规划. 本文分享自华为云社区<AI专家一席谈:复用算法.模型.案例,AI G ...

  6. Kotlin学习笔记12——数据类和密封类

    Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...

  7. 微信小程序---快速上手云开发

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  8. kotlin sealed 中_Kotlin 数据类与密封类

    我的理解密封类就是一种专门用来配合 when 语句使用的类,举个例子,假如在 Android 中我们有一个 view,我们现在想通过 when 语句设置针对 view 进行两种操作:显示和隐藏,那么就 ...

  9. Kotlin开发第六天,数据存储,持久化

    完整代码Gitee地址:kotlin-demo: 15天Kotlin学习计划 第六天学习内容代码:Chapter6 前言 简介 知识点1:文件存储 知识点2:sharedPreferences存储 知 ...

最新文章

  1. 机器学习模型调参指南(附代码)
  2. 一个好域名的作用和价值
  3. 删表出现mysql错误1051_无法删除mySQL表. (错误1050)
  4. 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 使用中出现OpenCV Error: Unspecified error
  5. Pycharm搭建dajango+Sqlite3
  6. docker mysql 主从配置
  7. 拓端tecdat|R语言和Stan,JAGS:用rstan,rjags建立贝叶斯多元线性回归预测选举数据
  8. 在线的pdf阅读器(javaweb)
  9. rpcbind 、nfs无法启动问题
  10. 【开源项目】二、Smart Admin 通用型中后台解决方案
  11. 免费WiFi上网软件之WiFi共享精灵
  12. 苹果新园区最新内部效果图流出
  13. 基于DRM框架的HDMI热插拔流程分析
  14. 【大疆智图】| 重建三维模型
  15. 成人用品的UML建模
  16. Acer 4750 安装黑苹果_傻瓜式一键黑苹果安装
  17. JSON.parse 转换字符串样式的数组
  18. 英语口语练习系列-C13-聚会
  19. 浅谈Hybrid技术——Big-man
  20. 第八天 (API,字符串,string,stringbuilder,stringjoiner)

热门文章

  1. java version 1.8下载_java jdk v1.8.0 官方免费版
  2. 交错数组 c语言,C#中的数组,多维数组和交错数组
  3. android studio天气预报
  4. java 环境变量的设置
  5. SPARK Your Embedded Development Project with eBox-4300 Windows Embedded CE 6.0 R2 Jump Start Kit
  6. 【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
  7. user account control用户帐户控制
  8. call,apply,bind的用法和区别
  9. 编译小米2s CyanogenMod 版本遇到的几个问题 (02.26更新)
  10. php 写入文件编码,PHP写入到文本文件乱码