【Kotlin 初学者】单例类(object)

本文介绍了Kotlin中使用对象表达式和对象声明创建伴生对象的方法,以及它们在实现单例模式和轻量级类变体中的应用。同时提及了面向Android开发者的学习资源,包括全套学习资料和面试题库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 对象声明

  • 对象表达式

  • 伴生对象(companion 关键字)

用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。

对象声明


使用 object 关键字来声明一个对象,通过对象声明来获得一个单例。

作用:对象声明有利于组织代码和管理状态,尤其是管理整个应用运行生命周期内的某些一致性状态。

/使用object声明对象/

object AppUtils{

init {

println(“AppUtils init”)

}

fun doData(){

println(“AppUtils doData”)

}

}

//使用

fun main() {

//AppUtils既是类名又是实例名

AppUtils.doData()

}

当时当你定义两个不同的变量来获取这个对象时,你会发现你并不能得到两个不同的变量。也就是说通过这种方式,我们获得一个单例。

对象表达式


通过对象表达式实现一个匿名内部类的对象。如果你需要某个现有类的一种变体实例,但只需用一次就行了,事实上,对于这种用完就丢的类实例,连命名都可以省了。这个对象表达式是XX的子类,这个匿名类依然遵循object关键字的一个规则,即一旦实例化,该匿名类只能有唯一一个实例存在。

open class Uesr{

var name = “帅次”

var age = 16

open fun doInfo() = “Uesr doInfo”

}

//使用

fun main() {

//User类别忘记加open关键字

val user = object : Uesr(){

override fun doInfo()= “User object”

}

println(user.doInfo())

}

不定义类,直接得到一个对象

//通过对象表达式可以越过类的定义直接得到一个对象

val vipUser = object {

var name = “Kotlin”

var age = 15

}

println(vipUser.name)

println(vipUser.age)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

尾声

开发是需要一定的基础的,我是08年开始进入Android这行的,在这期间经历了Android的鼎盛时期,和所谓的Android”凉了“。中间当然也有着,不可说的心酸,看着身边朋友,同事一个个转前端,换行业,其实当时我的心也有过犹豫,但是我还是坚持下来了,这次的疫情就是一个好的机会,大浪淘沙,优胜劣汰。再等等,说不定下一个黄金浪潮就被你等到了。

  • 330页 PDF Android核心笔记

  • 几十套阿里 、字节跳动、腾讯、华为、美团等公司2020年的面试题

  • PDF和思维脑图,包含知识脉络 + 诸多细节

  • Android进阶系统学习视频

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

6446560)]

  • Android进阶系统学习视频

[外链图片转存中…(img-uAXFnMkH-1713436446561)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值