Kotlin Classes

Defining classes and objects in Kotlin

Class Definition

class Person { # simple class
    var name: String = ""
    var age: Int = 0
}

Primary Constructor

class Person(val name: String, var age: Int) { # constructor in header
    init { # initializer block
        println("Created: $name")
    }
}

Creating Objects

val person = Person("John", 30) # no "new" keyword
person.age = 31 # modify property

Data Classes

data class User(val name: String, val age: Int) # auto-generates equals, hashCode, toString, copy
val user1 = User("John", 30)
val user2 = user1.copy(age = 31) # copy with modification

Inheritance

open class Animal { # open for inheritance
    open fun sound() { }
}
class Dog : Animal() { # inherit from Animal
    override fun sound() { # override method
        println("Woof")
    }
}

Object Declaration

object Database { # singleton object
    fun connect() { }
}
Database.connect() # access directly