一、对象声明
指在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}"
}
fun main(){
println(getTestName(A("hello")))
println(getTestName(B("hello")))
}
如果怕自己忘记实现哪个功能,可以考虑使用密封类
今天的内容就结束了,是不是很简单
关注我的技术公众号,每天都有优质技术文章推送。
微信扫一扫下方二维码即可关注:
加入我的技术社区,每天一起学习Kotlin。
点击下方的logo即可加入kotlin开发者社区:
|