Kotlin - 主要和次要构造函数

问题描述 投票:0回答:1
class SmartDevice(val name: String, val category: String) {
    var deviceStatus = "online"

    constructor(name: String, category: String, statusCode: Int) : this(name, category) {
        deviceStatus = when (statusCode) {
            0 -> "offline"
            1 -> "online"
            else -> "unknown"
        }
    }
    ...
}

有人可以向我解释一下这个程序在 kotlin 中的执行流程吗??

android kotlin android-jetpack-compose
1个回答
0
投票

当主构造函数被调用时:

  1. name
    category
    属性的支持字段使用传递给构造函数的参数进行初始化。
  2. deviceStatus
    属性的支持字段用
    "online"
    初始化。

调用辅助构造函数时:

  1. 调用主构造函数并将
    name
    category
    参数传递给第二个构造函数。所以上述所有步骤都会发生。
  2. 调用
    deviceStatus
    属性的 setter 并传递when语句表达式的结果。
© www.soinside.com 2019 - 2024. All rights reserved.