class AA{
init {
}
}
1.这是一个最简单的类,他没有在头部做任何构造器的声明,这时他拥有一个默认的无参构造器,而这个构造器的内容要放在init块中。如果构造器没有操作的话,init可以省略。
如果不想暴露这个构造器,可以在声明时设为private:
class AA private constructor()
(1)我们经常使用的一种构造器是传入参数为类的属性赋值,这里kotlin可以简化为直接声明一个带参构造器,不必声明属性:
class AA (name:String,id:String)(2)在类中创建其他构造器:
class AA(a:Int) {
constructor(a:Int,b:Int):this(a){
}
}
直接声明的构造器是顶级构造器,类中其他构造器需要调用这个构造器并向里面传值。如果没有直接声明任何构造器则无需。
3.继承
带有open修饰符的类才能被继承,带有open的函数才能被重写。
继承的时候必须指出父类构造器,有参数要往里面传参数:
class App : Application()类中的构造器也要往声明的父类构造器里传参数:constructor(ctx: Context) : super(ctx) {
}
Kotlin的单例模式巨简单,只需要把类的class关键字换成object即可,调用的时候直接用类名。需要注意的object修饰符不支持任何构造器。
类中可以有伴生对象,用法和静态属性一样,这个对象的名字可以省略,默认为Companion:
class HuabanService {
companion object A{有趣的是,被这个伴生对象包住的方法可以用类名直接引用,相当于静态方法,所以类中的静态方法可以用这么一个伴生对象包起来。
本文介绍了Kotlin中的构造器使用,包括默认无参构造器、带参构造器的简化声明以及构造器的可见性。同时,讨论了Kotlin的继承规则,强调了`open`修饰符的作用。此外,文章详细阐述了Kotlin实现单例模式的独特方式,通过将类声明为`object`,可以直接使用类名调用单例。还提到了类中的伴生对象,它类似于静态属性,可以省略名字,默认为`Companion`。
1838

被折叠的 条评论
为什么被折叠?



