CodeToLive

Kotlin Classes & Objects

Learn object-oriented programming with Kotlin.

Class Definition

// Simple class
class Person {
    var name: String = ""
    var age: Int = 0
    
    fun greet() {
        println("Hello, my name is $name")
    }
}

// Usage
val person = Person()
person.name = "Alice"
person.age = 25
person.greet()

Constructors

// Primary constructor
class Person(val name: String, var age: Int) {
    init {
        println("Person created: $name")
    }
}

// Secondary constructor
class Person(val name: String) {
    var age: Int = 0
    
    constructor(name: String, age: Int) : this(name) {
        this.age = age
    }
}

Inheritance

// Open class (can be inherited)
open class Animal(val name: String) {
    open fun makeSound() {
        println("Some generic animal sound")
    }
}

class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("Woof!")
    }
}

Data Classes

// Automatically generates equals(), hashCode(), toString(), etc.
data class User(val name: String, val age: Int)

// Usage
val user1 = User("Alice", 25)
val user2 = user1.copy(age = 26)
println(user1)  // User(name=Alice, age=25)

Companion Objects

class MyClass {
    companion object {
        fun create(): MyClass = MyClass()
    }
}

// Call without instance
val instance = MyClass.create()

Sealed Classes

// Restricted class hierarchies
sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val message: String) : Result()
}

fun handleResult(result: Result) {
    when (result) {
        is Result.Success -> println(result.data)
        is Result.Error -> println(result.message)
    }
}
← Back to Tutorials