object对象
object对象实现类似于java中的单例,内部生成了一个静态的INSTANCE的成员变量,并且私有化了构造函数,它的所有成员变量都是静态的,我们可以直接从类名访问
object A{
val a:String ="haha"
}
// 访问: A.a
//同样的 这个对象也可以嵌套在类里面
class B{
object C{
val d:String ="inner"
}
}
//访问B.c.d
匿名object对象
在代码内,有时只需要一个简单的对象,我们可以使用匿名object的方式
fun distance(x:Double,y:Double):Double{
val perigin=object {
var x=0.0
var y=0.0
}
}
伴生对象
这里需要了解一下kotlin的伴生对象,kotlin没有静态成员变量,用来替代,引入了伴生对象,其实这就是一个类的静态成员变量。
但是一个类只能有一个伴生对象。 伴生对象用companion object来定义。
kotlin之所以能抛弃静态成员,主要原因在于它允许包级属性和函数的存在。
class A{
//object 后面也可以加类名,默认是用A.Companion来访问的
companion object{
val a:Int = 0
}
}
参考
https://blog.csdn.net/shuangrenlong/article/details/127546577
网友评论