Bird
Raised Fist0
Kotlinprogramming~5 mins

Enum with properties and methods in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an enum class in Kotlin?
An enum class in Kotlin is a special class that represents a group of constants. Each constant is an object of the enum type.
Click to reveal answer
intermediate
How can you add properties to enum constants in Kotlin?
You add properties by defining a constructor in the enum class and passing values to each enum constant.
Click to reveal answer
intermediate
Can enum classes in Kotlin have methods? How?
Yes, enum classes can have methods just like regular classes. You define them inside the enum class body.
Click to reveal answer
beginner
Example: What does this enum represent?
<pre>enum class Direction(val degrees: Int) {
    NORTH(0), EAST(90), SOUTH(180), WEST(270)
}</pre>
This enum represents directions with their corresponding degrees on a compass.
Click to reveal answer
advanced
How do you override a method for each enum constant individually?
You can override methods by defining them in the enum class and then providing a specific implementation for each constant using an anonymous class syntax.
Click to reveal answer
How do you define a property for each enum constant in Kotlin?
ABy declaring variables outside the enum class
BBy adding a constructor with parameters to the enum class
CBy using global variables
DBy creating a separate class
Can enum classes in Kotlin have functions?
ANo, enums cannot have functions
BYes, but only static functions
CYes, enum classes can have functions like regular classes
DOnly if the enum has no properties
What keyword is used to define an enum class in Kotlin?
Aenum class
Bclass
Cenum
Dobject
How do you override a method for a specific enum constant?
ABy defining the method outside the enum class
BBy using inheritance
CBy creating a new enum class
DBy providing an anonymous class implementation for that constant
What will this code print?
enum class Color(val rgb: Int) {
    RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF)
}

fun main() {
    println(Color.GREEN.rgb)
}
A65280
BError
CGreen
D0x00FF00
Explain how to add properties and methods to an enum class in Kotlin with an example.
Think about how you pass values to enum constants and how you write functions inside the enum.
You got /4 concepts.
    Describe how to override a method for individual enum constants in Kotlin.
    Remember each constant can have its own implementation block.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using an enum with properties and methods in Kotlin?
      easy
      A. To group related fixed values with additional data and behavior
      B. To create a list of unrelated variables
      C. To define functions without any fixed values
      D. To replace all classes in Kotlin

      Solution

      1. Step 1: Understand enum basics

        Enums group fixed related values, like days or colors.
      2. Step 2: Recognize added properties and methods

        Adding properties and methods lets each enum value hold extra data and behavior.
      3. Final Answer:

        To group related fixed values with additional data and behavior -> Option A
      4. Quick Check:

        Enums = fixed values + extra data [OK]
      Hint: Enums bundle fixed options with data and actions [OK]
      Common Mistakes:
      • Thinking enums are for unrelated variables
      • Confusing enums with regular classes
      • Assuming enums can't have methods
      2. Which of the following is the correct syntax to declare an enum with a property color of type String in Kotlin?
      easy
      A. enum class Fruit { APPLE(color = "Red"), BANANA(color = "Yellow") }
      B. enum Fruit { APPLE: String = "Red", BANANA: String = "Yellow" }
      C. enum class Fruit(val color: String) { APPLE("Red"), BANANA("Yellow") }
      D. enum class Fruit { val color: String = "Red"; APPLE, BANANA }

      Solution

      1. Step 1: Check enum class declaration with property

        In Kotlin, enum classes can have constructor parameters like val color: String.
      2. Step 2: Verify enum values initialization

        Each enum value must pass the property value in parentheses, e.g., APPLE("Red").
      3. Final Answer:

        enum class Fruit(val color: String) { APPLE("Red"), BANANA("Yellow") } -> Option C
      4. Quick Check:

        Enum with constructor and values = enum class Fruit(val color: String) { APPLE("Red"), BANANA("Yellow") } [OK]
      Hint: Use constructor parameters and pass values in parentheses [OK]
      Common Mistakes:
      • Using colon syntax instead of constructor parameters
      • Trying to assign properties inside enum body incorrectly
      • Omitting parentheses for enum values
      3. What will be the output of the following Kotlin code?
      enum class Size(val label: String) {
          SMALL("S"), MEDIUM("M"), LARGE("L");
          fun description() = "Size is $label"
      }
      
      fun main() {
          println(Size.MEDIUM.description())
      }
      medium
      A. Size is M
      B. Size is MEDIUM
      C. MEDIUM
      D. Size.MEDIUM

      Solution

      1. Step 1: Understand enum property and method

        Each enum value has a label property: MEDIUM has "M".
      2. Step 2: Evaluate the description() method call

        The method returns "Size is $label", so for MEDIUM it returns "Size is M".
      3. Final Answer:

        Size is M -> Option A
      4. Quick Check:

        Method uses label property = "Size is M" [OK]
      Hint: Method uses property value, not enum name [OK]
      Common Mistakes:
      • Printing enum name instead of property
      • Confusing property label with enum constant name
      • Ignoring method call output
      4. Identify the error in this Kotlin enum declaration:
      enum class Direction(val degrees: Int) {
          NORTH(0),
          EAST(90),
          SOUTH(180),
          WEST
      }
      medium
      A. Semicolon missing after enum constants
      B. Cannot have properties in enum classes
      C. Enum constants must be lowercase
      D. Missing property value for WEST enum constant

      Solution

      1. Step 1: Check enum constructor parameters

        The enum class requires an Int parameter degrees for each constant.
      2. Step 2: Verify each enum constant initialization

        All constants except WEST provide a value; WEST is missing (value).
      3. Final Answer:

        Missing property value for WEST enum constant -> Option D
      4. Quick Check:

        All enum constants must pass constructor values [OK]
      Hint: All enum constants must provide constructor arguments [OK]
      Common Mistakes:
      • Forgetting to pass constructor arguments for all constants
      • Assuming semicolon is mandatory after constants
      • Thinking enum constants must be lowercase
      5. Given this enum with a method:
      enum class TrafficLight(val duration: Int) {
          RED(30) {
              override fun signal() = "Stop"
          },
          YELLOW(5) {
              override fun signal() = "Caution"
          },
          GREEN(25) {
              override fun signal() = "Go"
          };
          abstract fun signal(): String
      }
      
      fun main() {
          val lights = TrafficLight.values()
          val signals = lights.map { it.signal() }
          println(signals)
      }

      What is the output when running main()?
      hard
      A. [30, 5, 25]
      B. ["Stop", "Caution", "Go"]
      C. [RED, YELLOW, GREEN]
      D. ["Go", "Caution", "Stop"]

      Solution

      1. Step 1: Understand enum with abstract method

        Each enum constant overrides signal() to return a specific string.
      2. Step 2: Map enum values to their signals

        The map calls signal() on each constant, producing ["Stop", "Caution", "Go"].
      3. Final Answer:

        ["Stop", "Caution", "Go"] -> Option B
      4. Quick Check:

        Abstract method overridden per constant = correct signals [OK]
      Hint: Abstract method overridden per enum constant returns correct string [OK]
      Common Mistakes:
      • Printing enum names instead of method results
      • Confusing property values with method outputs
      • Ignoring abstract method override requirement
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard