We break down why Kotlin needs
enum class instead of “magic strings”: type-safe values (for example,
Status.DONE), standard properties
name and
ordinal (and why you must not use
ordinal as a stable identifier), getting all options via
entries, strict parsing via
valueOf, as well as enums with parameters and methods (and the mandatory
; before the body). At the end — a practical example for console expense tracking and common mistakes.