枚举:

由于这个比较简单,直接上代码:

下面使用一下:

印章类【Sealed class】:

听着挺新鲜的,下面以一个具体的场景来对它进行学习:

动物园里有三个动物如下,在天黑时它们污污的在做“游戏”,于是乎会发生如下关系:

公马 + 母驴  = 骡子

公驴 + 母驴 = 小驴

而这种场景刚好就可以用这个印章类来描述,下面看下代码:

而咱们这个例子最终的产出只有两种类型:小骡子和小小驴,不可能有其它类型,在Kotlin中针对这种场景就诞生出了印章类,那具体表现是怎么样的呢?

接着在它里面声明指定的类型,如下:

接着在Son类中可以增加一个方法:

接下来应用一下:

因为它只能用它里面指定的类型,类似于跟枚举一样,具体使用如下:

接下来则可以多生成几个儿子,并放一个集合中进行遍历:

所以可见印章类其实就是子类类型有限的class。

总结:

貌似印章类其实跟枚举是很类似的,都是限定了类型,但是它们俩还是有区别的,如下:

Sealed class更在意类型;枚举更在意数据。

kotlin面向对象之枚举、印章类相关推荐

  1. Kotlin学习笔记 第二章 类与对象 第十一节 枚举类 第八节密封类

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  2. Kotlin系列之枚举类

    今天我们一起学习Kotlin中的枚举类. 还是以前的惯例,我们要对比Java和Kotlin中的枚举类来学习. Java中的枚举类 Java中的枚举类是使用enum关键字声明的,先说说Java枚举类的一 ...

  3. 【Android开发日志】Kotlin 面向对象编程 - 类与对象(11)

    Android Studio 4.0已发布,此教程已更新至4.0版本. 面向对象,顾名思义,一定得是"对象",生活当中的人.电脑.等任何事物,他们都有各自的属性,我们编程里把这些属 ...

  4. Kotlin面向对象

    面向对象编程通过对事物的抽象,大大的简化了程序的开发难度.我们常用的编程语言:Java.C++.Python都属于面向对象编程.Kotlin与java类似,也是一种面向对象编程语言.本文从面向对象三个 ...

  5. 《Kotlin 程序设计》第五章 Kotlin 面向对象编程(OOP)

    第五章 Kotlin 面向对象编程(OOP) 正式上架:<Kotlin极简教程>Official on shelves: Kotlin Programming minimalist tut ...

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

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

  7. 使用Spock第2部分测试Kotlin –使用实例方法枚举

    Kotlin中带有实例方法的enum类与它的Java版本非常相似,但是它们的字节码看起来有些不同. 让我们通过使用编写一些测试来了解差异 Spock . 我们要测试什么? 让我们看一下我们要测试的代码 ...

  8. 【面向对象编程】(4) 类的继承,重构父类中的方法

    各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...

  9. 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系

    各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...

最新文章

  1. 据说这是中途接手别人项目时的场景
  2. 打造增长核武器:承载与创造科技公司70%价值的「网络效应」
  3. Google、Stanford导师带出的AI人才,是你吗?
  4. Spring Security基于角色的权限管理
  5. 宏BOOST_TEST_REF的用法程序
  6. 纪中C组模拟赛总结(2019.7.12)
  7. iphone屏幕突然变暗_iPhone 玩游戏时屏幕突然变暗,来看看是什么原因?
  8. 【Python】logging内置模块基本使用
  9. Windows任务管理器中的内存
  10. source insight 4.0 的一些设置
  11. fullcalendar 课程表 js 插件 日程安排操作 js
  12. 用 Creator 写微信小游戏排行榜
  13. SE5_FALSR超分辨率图像模型移植与测试
  14. 树莓派 4b 配置 USB 网络连接
  15. 移动周报:七大无需编程的DIY开发工具
  16. 基于Android的高校家校互通平台
  17. 2013,让你正能量无限的话
  18. Spring Cloud Alibaba配置实例nacos+sentinel+dubbo实行服务注册、配置中心、熔断限流
  19. Axure 9 实战案例,基本元件的应用 5,利用情形实现B站图文登录验证
  20. php自动轮播图代码,bootstrap框架实现自动轮播图的代码

热门文章

  1. bat批量处理所有子文件夹下的图片,将jpg转换成png
  2. FL STUDIO 21 水果音乐制作软件fl V21Producer 制作人版多少钱
  3. 什么是JavaScript作用域、作用域链?
  4. 物联网感知技术有哪些,有哪些应用场景。
  5. 我的互联网价值观、方法论和个人实践(3)-衣食住行
  6. 一个5年程序员的反思-亡羊补牢,为时不晚!
  7. 【学习日记2023.6.9】之 SpringCloud入门(认识微服务_服务拆分和远程调用RestTemplate_Eureka注册中心_Ribbon负载均衡_Nacos注册中心)
  8. 信息系统高级软考(备考)
  9. 【深度学习】预训练语言模型-BERT
  10. 三星的净利润大跌与其多项业务均面临中国企业的冲击有关