快速上手 Kotlin 开发系列之构造函数

本节介绍 Kotlin 的类的声明以及构造函数

类的声明

在前面的文章中简单的介绍过类的声明,我们来回顾下。

与 Java 类似,同样使用 class 关键字来声明一个类,后面紧跟着类名,如果该类有父类的话使用 : 分割,如果该类需要实现接口,则直接使用 , 跟在后面即可,而不是用 implement 关键字。接口和父类没有先后顺序。

特别的,Kotlin 中如果没有显式的声明一个父类,那么它的父类为 Any,而不是 Object

Kotlin 会对所有的类默认添加 public final 修饰符,如果不需要 final 来修饰的话,则需要使用 open 关键字修饰 Kotlin 的类, open 就表示这个类“不 final”。

快速上手 Kotlin 开发系列之构造函数_第1张图片

构造函数

在 Kotlin 中分为主构造函数和次级构造函数,其中主构造函数只能有一个,次构造函数可以有多个。

如果构造函数只有一个且没有参数,则可以直接省略不写,如上面的示例中 MainActivity 省略了无参构造函数,父类后面的括号表示调用父类无参数的构造函数。

如果构造函数需要参数,则可以在类名后添加参数,如果需要在构造函数中执行语句的话,则需要添加 init 代码块,将语句写在代码块中,像这种直接跟在类名后面的构造函数就称之为主构造函数。(init 代码块是可以写多个的)。

快速上手 Kotlin 开发系列之构造函数_第2张图片

如果需要多个构造函数,则可以使用 constructor 关键字声明次级构造函数,特别地,如果声明了次级构造函数,主构造函数的无参隐藏的特性就会失效。例如示例中的类,就没有无参构造函数。

快速上手 Kotlin 开发系列之构造函数_第3张图片

如果主构造函数和次级构造函数都存在时,次级构造函数要使用 this 关键字调用主构造函数:

快速上手 Kotlin 开发系列之构造函数_第4张图片

执行顺序

通过示例我们就可以看出,init 代码块执行顺序受声明的顺序影响,且优先于次级构造函数。

快速上手 Kotlin 开发系列之构造函数_第5张图片
快速上手 Kotlin 开发系列之构造函数_第6张图片

以上就是本节内容,欢迎大家关注~

长按关注

你可能感兴趣的:(Kotlin)