快速上手 Kotlin 开发系列之数据类和枚举
本节讨论 Kotlin 的数据类、枚举类和密闭类。
数据类
数据类是 Kotlin 中很特殊的一种类,它可以将我们类中的成员变量自动的生成 getter/setter 方法,以及我们经常需要重写的 toString()、hashCode()、equals()、copy() 方法,而不需要像 Java Bean 一样需要我们手动去重写这些方法。
数据类的声明只需要在类的前面添加 data
关键字。
需要注意一点的是,数据类是 final 类型的,不能添加 open
关键字去修饰它!
枚举
枚举类
Kotlin 中也有枚举类,它的枚举类与 Java 中的使用是一致的:
但是在 Kotlin 中我们很少使用枚举类,而是使用它更加强大的“枚举类”,称之为密闭类。
密闭类
使用 sealed
关键字修饰一个类即可,另外密闭类是可以有子类的,但是密闭类的子类必须和密闭类写在同一个文件中,所以通常会把密闭类的子类写在类本身里面。它的用法也与枚举类的用法一致,示例如下:
密闭类最大一个特性在于它是可以有扩展它的子类的,并且它的子类也可以成为密闭类的一个选项,示例如下:
以上就是本节内容,欢迎大家关注~
快速上手 Kotlin 开发系列之数据类和枚举相关推荐
- java object类_快速上手 Kotlin 开发系列之与 Java 互调 (1)
学习完基础语法之后,我们来学习下 Java 和 Kotlin 互相调用的问题 本节将介绍 Kotlin 与 Java 之间的语法变化 Kotlin 文件中的函数 首先让大家感到非常不适应的一点是,Ko ...
- java转安卓快吗_安卓Kotlin开发系列之Java快速转Kotlin
原标题:安卓Kotlin开发系列之Java快速转Kotlin 自从Kotlin被宣布为Android开发语言的官方支持后,如今可谓是火的一塌糊涂,作为一名Android程序员,如何快速爬坑?今天为大家 ...
- WijmoJS 2019V1正式发布:全新的在线 Demo 系统,助您快速上手,开发无忧
2019独角兽企业重金招聘Python工程师标准>>> 下载WijmoJS 2019 v1 WijmoJS是为企业应用程序开发而推出的一系列包含HTML5和JavaScript的开发 ...
- 几个特性,快速上手Kotlin
前言 因为工作需要,所以最近大量的时间都用在了对Kotlin的提升上.所以最近的文章基本都是关于Kotlin的了内容. 这不是一个死扣细节的文章,而是一个帮助小伙伴们快速由Java(Android)转 ...
- AI专家一席谈:复用算法、模型、案例,AI Gallery带你快速上手应用开发
摘要: 华为云社区邀请到了AI Gallery的负责人严博,听他谈一谈AI Gallery的设计初衷.经典案例以及未来规划. 本文分享自华为云社区<AI专家一席谈:复用算法.模型.案例,AI G ...
- Kotlin学习笔记12——数据类和密封类
Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...
- 微信小程序---快速上手云开发
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- kotlin sealed 中_Kotlin 数据类与密封类
我的理解密封类就是一种专门用来配合 when 语句使用的类,举个例子,假如在 Android 中我们有一个 view,我们现在想通过 when 语句设置针对 view 进行两种操作:显示和隐藏,那么就 ...
- Kotlin开发第六天,数据存储,持久化
完整代码Gitee地址:kotlin-demo: 15天Kotlin学习计划 第六天学习内容代码:Chapter6 前言 简介 知识点1:文件存储 知识点2:sharedPreferences存储 知 ...
最新文章
- 机器学习模型调参指南(附代码)
- 一个好域名的作用和价值
- 删表出现mysql错误1051_无法删除mySQL表. (错误1050)
- 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 使用中出现OpenCV Error: Unspecified error
- Pycharm搭建dajango+Sqlite3
- docker mysql 主从配置
- 拓端tecdat|R语言和Stan,JAGS:用rstan,rjags建立贝叶斯多元线性回归预测选举数据
- 在线的pdf阅读器(javaweb)
- rpcbind 、nfs无法启动问题
- 【开源项目】二、Smart Admin 通用型中后台解决方案
- 免费WiFi上网软件之WiFi共享精灵
- 苹果新园区最新内部效果图流出
- 基于DRM框架的HDMI热插拔流程分析
- 【大疆智图】| 重建三维模型
- 成人用品的UML建模
- Acer 4750 安装黑苹果_傻瓜式一键黑苹果安装
- JSON.parse 转换字符串样式的数组
- 英语口语练习系列-C13-聚会
- 浅谈Hybrid技术——Big-man
- 第八天 (API,字符串,string,stringbuilder,stringjoiner)
热门文章
- java version 1.8下载_java jdk v1.8.0 官方免费版
- 交错数组 c语言,C#中的数组,多维数组和交错数组
- android studio天气预报
- java 环境变量的设置
- SPARK Your Embedded Development Project with eBox-4300 Windows Embedded CE 6.0 R2 Jump Start Kit
- 【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
- user account control用户帐户控制
- call,apply,bind的用法和区别
- 编译小米2s CyanogenMod 版本遇到的几个问题 (02.26更新)
- php 写入文件编码,PHP写入到文本文件乱码