Constructor de Kotlin Constructor

1. Constructor

        Los constructores en kotlin se dividen en constructores primarios y constructores secundarios . Solo puede haber un constructor primario, y no hay límite para el número de constructores secundarios, y puede haber uno o más.

1. El constructor principal

//一般的主构造写法
class Student constructor(){
    
}

//当主构造方法没有任何注解或者可见性修饰符时,可以省略(),写成下面这样
class Student {
    
}

//主构造方法如下,跟在类名后面,有参数
class Student constructor(name:String){
    
}

//这种就是有注解标记的主构造方法,不能省略
class Student @Inject internal constructor(){
    
}

2. Constructor secundario

//次构造方法,一个无参的次构造方法,一个有一个参数的次构造方法
class Person {
    //无参
    constructor(){
        
    }
    
    //有参
    constructor(name:String){
        
    }
}

Podemos ver que el método de construcción principal no tiene cuerpo de método, entonces, ¿dónde debemos poner los datos que necesitamos para inicializar? Kotlin proporciona el método init para inicializar los datos por nosotros.

init{
   print("222")
    }

3. ¿Qué pasa con el orden de ejecución de la construcción primaria, la construcción secundaria y el inicio?

class ConstructorDemo(c: String) {//主构造

    constructor(a: String, b: Int) : this(a + b) {
        println("次构造,${a + b}")
    }

    init {
        println("init, $c")
    }

}

fun main() {
    val p = ConstructorDemo("6", 1)
}

Resultados de la:

en conclusión: 

        Se puede ver que aquí se ejecuta primero la construcción principal, porque ya hemos obtenido el valor de c en init; a continuación se ejecuta el método init, y en último lugar se ejecuta el método de construcción secundario. (Aunque lo instanciamos llamando al constructor secundario)

Supongo que te gusta

Origin blog.csdn.net/sunbinkang/article/details/124600421
Recomendado
Clasificación