Player now contains behavior and data you defined. For example, you specified an isImmortal property:

    val isImmortal = false

You used a val because once the player is created, their immortality should never be reassigned. But this property declaration means that, at the moment, no player can be immortal: There is currently no way to initialize isImmortal to any value other than false.

This is where a primary constructor comes into play. A constructor allows its caller to specify the initial values that an instance of a class will require in order to be constructed. Those values are then available for assignment to the properties defined within the class.

Primary constructors

Like a function, a constructor ...

Get Kotlin Programming: The Big Nerd Ranch Guide, First Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.