Kotlin är ett objektorienterat språk med stöd för klasser, arv, interfaces och mer. Här går vi igenom grunderna i OOP i Kotlin.
En klass definieras med class-nyckelordet:
class Person(val name: String, var age: Int) {
fun introduce() {
println("Hej, jag heter $name och är $age år gammal.")
}
}
val person = Person("Anna", 25)
person.introduce()
Kotlin har primära och sekundära konstruktorer.
class Car(val brand: String, val model: String) {
fun showInfo() {
println("Bilen är en $brand $model")
}
}
class Student {
var name: String
var age: Int
constructor(name: String, age: Int) {
this.name = name
this.age = age
}
}
Kotlin använder open för att möjliggöra arv (klasser är final som standard).
open class Animal(val name: String) {
open fun makeSound() {
println("Djur gör ett ljud")
}
}
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("Voff voff!")
}
}
val myDog = Dog("Buddy")
myDog.makeSound() // Voff voff!
Ett interface definierar beteenden som klasser kan implementera.
interface Movable {
fun move()
}
class Car : Movable {
override fun move() {
println("Bilen kör framåt")
}
}
val car = Car()
car.move()
Data-klasser används för att lagra data och kommer med toString, hashCode, equals och copy.
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31)
println(user1) // User(name=Alice, age=30)
println(user2) // User(name=Alice, age=31)
Om du behöver en klass med bara en instans kan du använda object.
object Logger {
fun log(message: String) {
println("LOG: $message")
}
}
Logger.log("Systemet startas")
companion object används för att definiera statiska medlemmar i en klass.
class MathUtils {
companion object {
fun add(a: Int, b: Int) = a + b
}
}
val sum = MathUtils.add(5, 10)
println("Summan är $sum")
Detta täcker grunderna i OOP i Kotlin. Nästa steg är att implementera dessa koncept i Android-utveckling!