时会执行一系列的 初始化操作 , 这些操作按照如下顺序执行 :
主构造函数 中属性赋值
类中的属性赋值
init 初始化块 中的代码执行
次构造函数 中的代码执行
代码示例 : 通过下面的代码分析 Kotlin...实例对象 各种初始化操作的 初始化顺序 ;
class Hello(
// 主构造函数, 直接在主构造函数中定义属性
var name: String,
// 该值是临时变量,...次构造函数开始执行
Tom , 18
从上述执行结果上看 , 可以知道先执行 init 初始化块 , 然后执行 次构造函数 ;
查看 Kotlin 字节码 , 并将其反编译回 Java 代码 , 结果如下...;
最后 , 为 gender 赋值 , 这是在 init 初始化块 中进行的赋值 ;
然后分析 次构造函数 , 在 如下的 次构造函数的代码中 , 先执行了 主构造函数 , 然后才为 type 属性赋值...}
因此得到了上述初始化操作的执行顺序 : 主构造函数属性赋值 -> 类属性赋值 -> init 初始化块代码 -> 次构造函数代码