Kotlin - Enum Class Example

The most basic usage of enum classes is implementing type-safe enums:
enum class Direction { NORTH, SOUTH, WEST, EAST }
Each enum constant is an object. Enum constants are separated with commas.

Initialization

Since each enum is an instance of the enum class, they can be initialized as:
enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) }

Enum Constants as Anonymous Classes

Enum constants can also declare their own anonymous classes:
package net.javaguides.kotlin.examples enum class CardType { SILVER { override fun calculateCashbackPercent() = 0.25 f }, GOLD { override fun calculateCashbackPercent() = 0.5 f }, PLATINUM { override fun calculateCashbackPercent() = 0.75 f }; abstract fun calculateCashbackPercent(): Float } fun main(args: Array < String > ) { val cashbackPercent = CardType.SILVER.calculateCashbackPercent(); println(cashbackPercent); }
Output:
0.25

Enums Implementing Interfaces

package net.javaguides.kotlin.examples interface ICardLimit { fun getCreditLimit(): Int } enum class CardType: ICardLimit { SILVER { override fun getCreditLimit() = 100000 }, GOLD { override fun getCreditLimit() = 200000 }, PLATINUM { override fun getCreditLimit() = 300000 } } fun main(args: Array < String > ) { val creditLimit = CardType.PLATINUM.getCreditLimit() println(creditLimit); }
Output:
300000


Comments