Beginner 7 min readKotlin 2.0

Kotlin Enum Classes — Named Constants with Power

Enum classes represent a fixed set of constants. Each constant is an object instance of the enum class.

What You Will Learn

  • Declare enum classes
  • Add properties and methods to enums
  • Use enums in when expressions
  • Iterate enum values with values()
  • Choose enum vs sealed class

Basic Enum

Use enum class to define a closed set of named values — directions, statuses, days of the week.

Simple Enum

kotlin
enum class Status { ACTIVE, INACTIVE, PENDING }

fun main() {
    val s = Status.ACTIVE
    println(s)
    println(s.name)
}
Output
ACTIVE ACTIVE

Each constant is a singleton instance. name returns the constant identifier as a String.

Enums with Properties

Enum constants can have constructor parameters, turning each constant into a rich object.

Enum with Data

kotlin
enum class Planet(val massKg: Double) {
    EARTH(5.97e24),
    MARS(6.39e23)
}

fun main() {
    for (p in Planet.entries) {
        println("${p.name}: ${p.massKg}")
    }
}
Output
EARTH: 5.97E24 MARS: 6.39E23

Planet.entries (Kotlin 1.9+) lists all constants. Each stores its massKg value.

Practice Exercise

Exercisepredict output

What prints? enum class Color { RED, GREEN } fun main() { println(Color.GREEN.ordinal) }

Quick Quiz

Quick Quiz

When are enum classes the best choice?

Frequently Asked Questions

Related Tutorials

Last updated: 2026-05-19Kotlin 2.0

Written by KotlinGuide Editorial Team · Reviewed by KotlinGuide Technical Review