当前位置: 首页 > news >正文

Kotlin-枚举和印章

kotlin-枚举

枚举也是一个对象,枚举对象的定义需要使用enum关键字
枚举对象可以定义函数
假设定义一个星期枚举对象。就是一下写法

enum class Week {星期一,星期二,星期三,星期四,星期五,星期六,星期日;//打印星期几fun printWeek(){println("这是星期枚举对象$this")}
}

如何使用枚举,直接用枚举对象名.属性
下面是调用枚举的代码:

fun main(args: Array<String>) {Week.星期二.printWeek()println(Week.星期一)
}
//打印结果:
//这是星期枚举对象星期二
//星期一

应用场景:如果需要规定参数只能为某些固定值的时候,就可以定义一个枚举对象,传递的参数就必须是枚举的某些值。

Kotlin-印章

创建印章类需要使用sealed 关键字来声明。

sealed class Animal(var age:Int){fun eat(){println("动物会吃东西")}class Cat(age: Int) :Animal(age){fun catchMice(){println("$age 岁的小猫会抓老鼠")}}class Dog(age: Int) : Animal(age){fun guardHouse(){println("$age 岁的小狗会看家")}}
}

印章类不能创建对象,只能创建印章类里面定义的对象类型。
从使用层面看,使用抽象类也能实现这种效果,但是写法不一样。

fun main(args: Array<String>) {
//  创建一个动物印章类里面的小猫对象var cat = Animal.Cat(1)cat.catchMice()//创建一个动物印章类里面的小狗对象var dog = Animal.Dog(2)dog.guardHouse()//小猫和小狗都属于动物印章类,所以可以放到一个集合里面var animals= listOf(cat,dog)animals.forEach { if (it is Animal.Cat){it.eat()} }
}

总结:
枚举比较注重属性。可以简单理解为定义了一对常量。
印章类比较注重对象。可以使用抽象类实现类似效果。

http://www.lryc.cn/news/18175.html

相关文章:

  • _linux (TCP协议通讯流程)
  • PMP考试详解,新考纲有什么变化?
  • C++学习笔记-日期和时间
  • Nordic nRF芯片FDS模块学习
  • JVM 学习(1)—JVM 与 JMM 内存模型简单理解
  • NMS详解
  • 考出PMP证书到底有没有用?
  • 寻路库recastnavigation改造
  • pandas 一些设置随记
  • SSIM学习
  • selenium自动化测试用例需要关注的几点
  • harfbuzz 的用法
  • JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc
  • Python学习笔记——PIL库(Pillow库)总结
  • C. Build Permutation【整数理论、构造、思维】
  • 关于ETL的两种架构(ETL架构和ELT架构)
  • android系统目录
  • 【C/C++】中【typedef】用法大全
  • 超实用的公众号运营攻略分享,纯干货
  • 编写NodeJs脚本实现接口请求
  • 【无人机】回波状态网络(ESN)在固定翼无人机非线性控制中的应用(Matlab代码实现)
  • YAML 文件简介
  • Python四大主题之一【 Web】 编程框架
  • 【C++】哈希表
  • 深度学习入门(六十七)循环神经网络——注意力机制
  • 阿里云云通信风控系统的架构与实践
  • 【性能测试】loadrunner(一)知识准备
  • 【Vue3源码】第五章 ref的原理 实现ref
  • [Flink]部署模式(看pdf上的放上面)
  • Linux 查看 CPU 信息,机器型号,内存等信息