当前位置: 首页 > 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()} }
}

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

相关文章:

Kotlin-枚举和印章

kotlin-枚举 枚举也是一个对象&#xff0c;枚举对象的定义需要使用enum关键字 枚举对象可以定义函数 假设定义一个星期枚举对象。就是一下写法 enum class Week {星期一,星期二,星期三,星期四,星期五,星期六,星期日;//打印星期几fun printWeek(){println("这是星期枚举对…...

_linux (TCP协议通讯流程)

文章目录TCP协议通讯流程TCP 和 UDP 对比TCP协议通讯流程 下图是基于TCP协议的客户端/服务器程序的一般流程: 服务器初始化: 调用socket, 创建文件描述符;调用bind, 将当前的文件描述符和ip/port绑定在一起;如果这个端口已经被其他进程占用了, 就会bind失 败;调用listen, 声…...

PMP考试详解,新考纲有什么变化?

一&#xff0c;为什么优先考虑PMP持证人员&#xff1f; PMP证书在我国大型企业、跨国企业、央企/国企等单位的招聘中都比较重视&#xff0c;特别是在许多项目投标环节中&#xff0c;明确标明需要有PMP持证人员&#xff0c;才能在投标、竞标中代表公司有资格承担项目。 除此之…...

C++学习笔记-日期和时间

C中可以使用的日期时间API主要分为两类&#xff1a; C-style 日期时间库&#xff0c;位于头文件中。这是原先<time.h>头文件的C版本。 chrono库&#xff1a;C 11中新增API&#xff0c;增加了时间点&#xff0c;时长和时钟等相关接口。 在C11之前&#xff0c;C编程只能使…...

Nordic nRF芯片FDS模块学习

FDS系统学习 文章目录FDS系统学习一、ROM&#xff0c;RAM&#xff0c;FLASH作用二、ROM,RAM和FLASH在单片中的运作原理三、Flash访问模块FDS用法1. FDS在sdk_config.h中的配置2. fds_register()注册3. fds_record_write()写记录4. fds_record_find()查找5. fds_record_open()读…...

JVM 学习(1)—JVM 与 JMM 内存模型简单理解

一、JVM 内存模型概述 (1) 为什么会出现 JVM 内存模型呢&#xff1f; JVM 内存模型是为规范描述 Java 虚拟机在执行 Java 程序时&#xff0c;将程序中的数据和代码存储到计算机内存中的方式和规则。JVM 内存模型定义 Java 虚拟机所使用的内存结构以及内存区域之间的关系&…...

NMS详解

(类别&#xff0c;坐标1&#xff0c;坐标2&#xff0c;坐标3&#xff0c;坐标4&#xff0c;类别分数) step1&#xff1a;对最后一列分数进行排序 &#xff0c;可以看到类别就被打乱了 step2&#xff1a; 弹出得到selected_bboxes作为基准&#xff0c;减少bbox_list。其实就是准…...

考出PMP证书到底有没有用?

我们将从三方面分享&#xff1a; 1. PMP 证书在国内的含金量怎么样&#xff1f; 2. HR 如何看待 PMP 证书&#xff1f; 3. 拿到 PMP 证书后&#xff0c;有哪些变化&#xff1f; 一&#xff0c;PMP证书的含金量 说到 PMP 证书的含金量&#xff0c;相信这个问题是所有学员都…...

寻路库recastnavigation改造

本文是介绍对寻路库recastnavigation 改造&#xff0c;使得使用更加友好。 Git仓库: https://github.com/jiangguilong2000/recastnavigation 首先&#xff0c;我们要做一些前置操作 SDL: 开放源代码的跨平台多媒体开发库 Premake&#xff1a;量跨平台构建系统 环境: VS 2019…...

pandas 一些设置随记

显示所有的行、列 # 显示所有列 pd.set_option(display.max_columns, None) # 显示所有行 pd.set_option(display.max_rows, None)不换行显示 pd.set_option(display.width, 1000) 输出对其 pd.set_option(display.unicode.ambiguous_as_wide, True) pd.set_option(display.…...

SSIM学习

SSIM原文链接&#xff1a;https://www.researchgate.net/profile/Eero-Simoncelli/publication/3327793_Image_Quality_Assessment_From_Error_Visibility_to_Structural_Similarity/links/542173b20cf203f155c6bf1a/Image-Quality-Assessment-From-Error-Visibility-to-Struct…...

selenium自动化测试用例需要关注的几点

自动化测试设计简介注&#xff1a;参看文章地址 我们在本章提供的信息&#xff0c;对自动化测试领域的新人和经验丰富的老手都是有用的。本篇中描述最常见的自动化测试类型&#xff0c; 还描述了可以增强您的自动化测试套件可维护性和扩展性的“设计模式”。还没有使用这些技术…...

harfbuzz 的用法

hb-blob&#xff1a; HarfBuzz Manual harfbuzz 的用法 HarfBuzz 整形 API 的核心是函数。此函数采用一种字体&#xff0c;即 包含一串 Unicode 代码点的缓冲区和 &#xff08;可选&#xff09;字体功能列表作为其输入。它取代了 缓冲区中的代码点&#xff0c;其中包含来自 字…...

JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc

一、源码特点 JSP 在线学习管理系统是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为SQLServer2008&#x…...

Python学习笔记——PIL库(Pillow库)总结

一、图像数据的格式 ①jpg 支持高级别的压缩&#xff0c;利用部分损耗&#xff0c;使图片变小&#xff0c;方便网络传播。 ②png 无损压缩格式&#xff0c;比jpg略大&#xff0c;较好的保存图片画质&#xff0c;支持透明效果。 ③gif 动图效果&#xff0c;多帧图像组合到…...

C. Build Permutation【整数理论、构造、思维】

链接 理论基础 结论&#xff1a;在区间[n,2n]上&#xff0c;至少存在一个完全平方数。结论&#xff1a;在区间[n,2n]上&#xff0c;至少存在一个完全平方数。结论&#xff1a;在区间[n,2n]上&#xff0c;至少存在一个完全平方数。 构造⌈n⌉2构造\lceil \sqrt{n}\rceil^2构造⌈…...

关于ETL的两种架构(ETL架构和ELT架构)

ETL&#xff0c;是英文 Extract-Transform-Load 的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程。ETL一词较常用在数据仓库&#xff0c;但其对象…...

android系统目录

环境&#xff1a;android studio引入android系统源码android和ubuntu策略路由的差异android源码编译问题&#xff08;单编&#xff09;repo(android源码)命令使用和注意事项wifi&#xff1a;wifi的加密类型梳理android11 wifisetting 流程跟踪android wifi热点settingandroid n…...

【C/C++】中【typedef】用法大全

总结一下typedef用法&#xff0c;一共七种&#xff0c;分别是&#xff1a;为基本数据类型起别名、为结构体起别名、为指针类型起别名、为数组类型起别名、为枚举类型起别名、为模版函数起别名。 目录 一、为基本数据类型起别名 二、为结构体起别名 三、为指针类型起别名 四…...

超实用的公众号运营攻略分享,纯干货

很多小伙伴抱怨&#xff0c;公众号运营真的越来越难做了&#xff01; 每天会因为少得可怜的阅读量发愁&#xff0c;每天会因为纠结写什么选题发愁&#xff0c;每天更会因为公众号没有什么起色而感到无力。 现阶段公众号运营趋于饱和状态&#xff0c;公众号创建门槛低&#xf…...

Wan2.2-I2V-A14B一键部署教程:Python环境快速配置与模型调用

Wan2.2-I2V-A14B一键部署教程&#xff1a;Python环境快速配置与模型调用 1. 快速开始&#xff1a;部署前的准备工作 在开始之前&#xff0c;确保你已经拥有星图GPU平台的账号并完成登录。这个平台提供了强大的计算资源&#xff0c;特别适合运行图像到视频转换这类计算密集型任…...

腾讯优图视觉模型入门:Youtu-VL-4B-Instruct快速上手教程

腾讯优图视觉模型入门&#xff1a;Youtu-VL-4B-Instruct快速上手教程 1. 认识Youtu-VL-4B-Instruct 想象一下&#xff0c;你正在处理一批产品图片&#xff0c;需要为每张图片写描述、识别文字内容、分析图表数据。传统方法可能需要多个工具来回切换&#xff0c;而现在&#x…...

3秒极速解锁:高效智能的百度网盘提取码获取工具实战指南

3秒极速解锁&#xff1a;高效智能的百度网盘提取码获取工具实战指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 在数字资源分享日益频繁的今天&#xff0c;百度网盘提取码智能获取工具baidupankey通过创新的技术架构和优化…...

别只盯着树莓派!聊聊GEC6818这块国产ARM板在嵌入式学习中的独特优势与避坑指南

国产ARM开发板GEC6818实战指南&#xff1a;从硬件解析到智能家居项目落地 在嵌入式开发领域&#xff0c;树莓派几乎成了入门者的默认选择&#xff0c;但这款英国产的单板计算机真的适合所有学习场景吗&#xff1f;当我第一次接触到GEC6818这块国产ARM开发板时&#xff0c;它的8…...

Qwen3-TTS声音克隆实战:3秒复制你的声音,Unity游戏角色秒变话痨

Qwen3-TTS声音克隆实战&#xff1a;3秒复制你的声音&#xff0c;Unity游戏角色秒变话痨 1. 引言&#xff1a;当游戏角色学会"说话" 想象一下这样的场景&#xff1a;你正在开发的RPG游戏中&#xff0c;玩家可以上传自己的声音样本&#xff0c;然后所有NPC都会用玩家…...

Wan2.2-I2V-A14B Anaconda虚拟环境管理:隔离依赖与复现实验

Wan2.2-I2V-A14B Anaconda虚拟环境管理&#xff1a;隔离依赖与复现实验 1. 为什么需要虚拟环境 在AI项目开发中&#xff0c;依赖管理是个让人头疼的问题。想象一下这样的场景&#xff1a;你花了两周时间调试好的模型&#xff0c;换台机器就跑不起来了&#xff1b;或者更新了某…...

Yi-Coder-1.5B实战:快速生成Python算法与前端组件代码

Yi-Coder-1.5B实战&#xff1a;快速生成Python算法与前端组件代码 1. 开篇&#xff1a;你的随身编程助手 想象一下&#xff0c;你正在为一个新项目搭建框架&#xff0c;需要写一个快速排序算法&#xff0c;或者需要一个美观的React按钮组件。你打开搜索引擎&#xff0c;在无数…...

AI学习方法论--AI费曼学习法:让AI扮演3个角色,把知识刻进脑子

很多人都有这样的经历&#xff1a;刚看完一本书&#xff0c;感觉自己什么都懂了。结果一周以后&#xff0c;别人问你学到了什么&#xff0c;你支支吾吾半天&#xff0c;说不出个所以然。 为什么&#xff1f; 因为你只是"看过"&#xff0c;不是"学会"。 今天…...

MTK新工程创建与调试全攻略,人形机器人的发展历程、技术演进与未来图景。

MTK调试&#xff1a;创建新工程指南 准备工作 确保已安装MTK官方开发环境&#xff0c;包括SDK、驱动程序和必要的工具链。下载最新版本的MTK开发包&#xff0c;解压到指定目录。检查系统环境变量是否配置正确&#xff0c;确保编译工具路径已加入PATH。 工程结构初始化 使用MTK提…...

Qwen2.5-72B大模型实战指南:GPTQ-Int4量化+128K上下文+Chainlit可视化交互全流程

Qwen2.5-72B大模型实战指南&#xff1a;GPTQ-Int4量化128K上下文Chainlit可视化交互全流程 1. 模型简介 Qwen2.5-72B-Instruct-GPTQ-Int4是Qwen大型语言模型系列的最新版本&#xff0c;代表了当前开源大模型领域的顶尖水平。这个72.7B参数的模型经过GPTQ 4-bit量化处理&#…...