⚡ Kotlin Fundamentals
Classes & Objects in Kotlin
Data classes, sealed classes, companion objects, inheritance.

Basic Classes

kotlin
class User(val name: String, var age: Int) {
    fun introduce() = println("I'm $name, $age years old")
}
val u = User("Alice", 30)
u.introduce()

Data Classes

Data classes auto-generate equals(), hashCode(), toString(), and copy() — perfect for model objects.

kotlin
data class Product(val id: Int, val name: String, val price: Double)

val p1 = Product(1, "Widget", 9.99)
val p2 = p1.copy(price = 12.99)  // unchanged except price
println(p1 == p2)  // false — structural equality

Sealed Classes

kotlin
sealed class UiState<out T> {
    object Loading : UiState<Nothing>()
    data class Success<T>(val data: T) : UiState<T>()
    data class Error(val msg: String) : UiState<Nothing>()
}

fun render(state: UiState<List<Product>>) = when (state) {
    is UiState.Loading  -> showSpinner()
    is UiState.Success  -> showList(state.data)
    is UiState.Error    -> showError(state.msg)
}

Key Takeaways

Data classes auto-generate equals, hashCode, toString, and copy
copy() is immutable-friendly — returns a new object with selected fields changed
Sealed classes model closed state hierarchies — exhaustive when expressions
Companion objects provide static-like members scoped to the class
Lesson 8 of 30Kotlin Fundamentals
← Previous Next Lesson →