空重载构造函数

bor*_*rom 1 android kotlin

我有以下课程.

class Student(id: String, name: String) {

    var id: String? = null
    var name: String? = null
    var grade: String? = null

    constructor(id: String, name: String, grade: String) : this(id,name) {
        this.grade = grade
    }
}
Run Code Online (Sandbox Code Playgroud)

使用:

  var student = Student("AB001","Smith","N/A")

  prinln(student.id + student.name + student.grade)
Run Code Online (Sandbox Code Playgroud)

输出:

nullnullN/A

任何人都可以解释为什么我从默认构造函数获取输出null?

小智 5

class Student {
    var id: String? = null
    var name: String? = null
    var grade: String? = null

    constructor(id: String, name: String) {
        this.id=id
        this.name=name
    }

    constructor(id: String, name: String, grade: String) : this(id, name) {
        this.grade = grade
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

class Student(var id: String?, var name: String?) {
    var grade: String? = null

    constructor(id: String, name: String, grade: String) : this(id, name) {
        this.grade = grade
    }
}
Run Code Online (Sandbox Code Playgroud)