IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 一行解决单例模式(Kotlin中常用的类) -> 正文阅读

[移动开发]一行解决单例模式(Kotlin中常用的类)

一、对象声明

指在object后面指定对象的名称,通过对象声明,只需要一行代码就实现了单例模式,这是Kotlin的内置语法支持,本质上还是一个封装

object single{
    //代码块
    //即实现了一个单例类
}

二、伴生对象

由于Kotlin没有static关键字,没有静态属性和静态方法,但如果有需求怎么办?没关系,Kotlin里面还有一些替代的方案甚至是逼近原生的

其实object关键字实现的单例类就已经相当于一个静态的类,里面的全部的属性和方法实质上已经全部被声明为静态的了,但有一个问题,如果我只想要将一个方法或者一个属性声明为静态的怎么办?

这时候就要考虑伴生对象了,使用companion object关键字

companion object{
    //需要声明静态的属性或者方法
}

三、数据类

data关键字修饰,一般用于储存数据相关的属性,这个也是默认自带getter和setter方法,非常好用,而且还自带hashCode()、equals()等方法

data class Dog(val name:String,val age:Int)

实际开发中用的非常多,一般用于json数据的解析之后储存的对象

四、密封类

这个类有点类似枚举类,经常和when一起配合使用,sealed关键字,包含子类,配合when使用时要么实现全部的子类,要么使用else

sealed class Test(var name:String)
class A(AName:String):Test(AName)
class B(BName:String):Test(BName)
fun getTestName(test: Test) =  when(test){
    is A -> "AName is ${test.name}"
    is B -> "BName is ${test.name}"
    //也可以去掉上面那一行,采用else
    //else -> "BName is ${test.name}"
}
fun main(){
    println(getTestName(A("hello")))
    println(getTestName(B("hello")))
}

如果怕自己忘记实现哪个功能,可以考虑使用密封类

今天的内容就结束了,是不是很简单

关注我的技术公众号,每天都有优质技术文章推送。

微信扫一扫下方二维码即可关注:

加入我的技术社区,每天一起学习Kotlin。

点击下方的logo即可加入kotlin开发者社区:

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:47:32  更:2021-12-16 17:49:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:43:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码