kotlin面向对象之枚举、印章类
枚举:
由于这个比较简单,直接上代码:
下面使用一下:
印章类【Sealed class】:
听着挺新鲜的,下面以一个具体的场景来对它进行学习:
动物园里有三个动物如下,在天黑时它们污污的在做“游戏”,于是乎会发生如下关系:
公马 + 母驴 = 骡子
公驴 + 母驴 = 小驴
而这种场景刚好就可以用这个印章类来描述,下面看下代码:
而咱们这个例子最终的产出只有两种类型:小骡子和小小驴,不可能有其它类型,在Kotlin中针对这种场景就诞生出了印章类,那具体表现是怎么样的呢?
接着在它里面声明指定的类型,如下:
接着在Son类中可以增加一个方法:
接下来应用一下:
因为它只能用它里面指定的类型,类似于跟枚举一样,具体使用如下:
接下来则可以多生成几个儿子,并放一个集合中进行遍历:
所以可见印章类其实就是子类类型有限的class。
总结:
貌似印章类其实跟枚举是很类似的,都是限定了类型,但是它们俩还是有区别的,如下:
Sealed class更在意类型;枚举更在意数据。
kotlin面向对象之枚举、印章类相关推荐
- Kotlin学习笔记 第二章 类与对象 第十一节 枚举类 第八节密封类
参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...
- Kotlin系列之枚举类
今天我们一起学习Kotlin中的枚举类. 还是以前的惯例,我们要对比Java和Kotlin中的枚举类来学习. Java中的枚举类 Java中的枚举类是使用enum关键字声明的,先说说Java枚举类的一 ...
- 【Android开发日志】Kotlin 面向对象编程 - 类与对象(11)
Android Studio 4.0已发布,此教程已更新至4.0版本. 面向对象,顾名思义,一定得是"对象",生活当中的人.电脑.等任何事物,他们都有各自的属性,我们编程里把这些属 ...
- Kotlin面向对象
面向对象编程通过对事物的抽象,大大的简化了程序的开发难度.我们常用的编程语言:Java.C++.Python都属于面向对象编程.Kotlin与java类似,也是一种面向对象编程语言.本文从面向对象三个 ...
- 《Kotlin 程序设计》第五章 Kotlin 面向对象编程(OOP)
第五章 Kotlin 面向对象编程(OOP) 正式上架:<Kotlin极简教程>Official on shelves: Kotlin Programming minimalist tut ...
- Kotlin学习笔记12——数据类和密封类
Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...
- 使用Spock第2部分测试Kotlin –使用实例方法枚举
Kotlin中带有实例方法的enum类与它的Java版本非常相似,但是它们的字节码看起来有些不同. 让我们通过使用编写一些测试来了解差异 Spock . 我们要测试什么? 让我们看一下我们要测试的代码 ...
- 【面向对象编程】(4) 类的继承,重构父类中的方法
各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...
- 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系
各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...
最新文章
- 据说这是中途接手别人项目时的场景
- 打造增长核武器:承载与创造科技公司70%价值的「网络效应」
- Google、Stanford导师带出的AI人才,是你吗?
- Spring Security基于角色的权限管理
- 宏BOOST_TEST_REF的用法程序
- 纪中C组模拟赛总结(2019.7.12)
- iphone屏幕突然变暗_iPhone 玩游戏时屏幕突然变暗,来看看是什么原因?
- 【Python】logging内置模块基本使用
- Windows任务管理器中的内存
- source insight 4.0 的一些设置
- fullcalendar 课程表 js 插件 日程安排操作 js
- 用 Creator 写微信小游戏排行榜
- SE5_FALSR超分辨率图像模型移植与测试
- 树莓派 4b 配置 USB 网络连接
- 移动周报:七大无需编程的DIY开发工具
- 基于Android的高校家校互通平台
- 2013,让你正能量无限的话
- Spring Cloud Alibaba配置实例nacos+sentinel+dubbo实行服务注册、配置中心、熔断限流
- Axure 9 实战案例,基本元件的应用 5,利用情形实现B站图文登录验证
- php自动轮播图代码,bootstrap框架实现自动轮播图的代码
热门文章
- bat批量处理所有子文件夹下的图片,将jpg转换成png
- FL STUDIO 21 水果音乐制作软件fl V21Producer 制作人版多少钱
- 什么是JavaScript作用域、作用域链?
- 物联网感知技术有哪些,有哪些应用场景。
- 我的互联网价值观、方法论和个人实践(3)-衣食住行
- 一个5年程序员的反思-亡羊补牢,为时不晚!
- 【学习日记2023.6.9】之 SpringCloud入门(认识微服务_服务拆分和远程调用RestTemplate_Eureka注册中心_Ribbon负载均衡_Nacos注册中心)
- 信息系统高级软考(备考)
- 【深度学习】预训练语言模型-BERT
- 三星的净利润大跌与其多项业务均面临中国企业的冲击有关