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)
}
}