``` class X { val x: String val y: String ...
# announcements
o
Copy code
class X {
    val x: String
    val y: String

    init { // (1)
        x = "one" // ok, initialisation
        println(y) // error, y uninitialised
        z = 1 // error, cannot initialise before declaration
    }

    val t = 127 // (2)
    val z: Int

    init { // (3)
        y = "two"
        z = 10 // ok, if previous bogus z init is removed
    }
}
Execution order is (1), (2) and then (3)