Kotlin
Megjelenés
Főnév
Kotlin (tsz. Kotlins)
A Kotlin egy modern, statikusan típusos programozási nyelv, amelyet a JetBrains fejlesztett ki, és 2011-ben jelent meg. Legismertebb felhasználási területe az Android-fejlesztés, de teljes értékű nyelv a backend fejlesztéshez, frontendhez (JavaScript vagy WebAssembly), sőt multiplatform alkalmazásokhoz is (pl. Kotlin Multiplatform Mobile – KMM).
📌 1. Miért Kotlin?
- Kompaktabb, mint Java – kevesebb boilerplate kód
- Nullbiztonság – beépített védelem a
NullPointerExceptionellen - Funkcionális és objektumorientált – támogatja mindkét paradigmát
- 100% kompatibilis a Javával – Kotlin kód fut a Java virtuális gépen (JVM)
- JetBrains és Google támogatás – 2017 óta az Android hivatalos nyelve
📐 2. Alapok
Hello World
fun main() {
println("Hello, Kotlin!")
}
Változók
val x = 10 // konstans, nem módosítható
var y = 5 // változó, módosítható
Típusok (statikus, de nem mindig kötelező megadni)
val name: String = "Dani"
val age: Int = 25
val pi: Double = 3.14
🔄 3. Feltételek és ciklusok
If-else
val max = if (a > b) a else b
When (Java switch helyett)
when (x) {
1 -> println("Egy")
2 -> println("Kettő")
else -> println("Más")
}
For ciklus
for (i in 1..5) println(i)
While
while (x < 10) {
x++
}
📦 4. Függvények
fun add(a: Int, b: Int): Int {
return a + b
}
Rövid forma:
fun add(a: Int, b: Int) = a + b
Default és név szerinti paraméterek:
fun greet(name: String = "Világ") {
println("Helló, $name!")
}
greet() // Helló, Világ!
greet("Dani") // Helló, Dani!
🧱 5. Osztályok és objektumok
class Person(val name: String, var age: Int)
val p = Person("Dani", 25)
println(p.name)
Konstruktorral:
class Person(val name: String, val age: Int)
👑 6. Öröklés
open class Animal {
open fun speak() = println("Hangot ad")
}
class Dog : Animal() {
override fun speak() = println("Vau!")
}
🧰 7. Adatosztályok (data class)
data class User(val name: String, val age: Int)
val u1 = User("Dani", 30)
println(u1.copy(age = 31)) // másolat új értékkel
Automatikusan generál: equals(), hashCode(), toString(), copy()
🧩 8. Funkcionális elemek
- Lambda kifejezések:
val list = listOf(1, 2, 3, 4)
val doubled = list.map { it * 2 }
- Filter, map, reduce:
val evens = list.filter { it % 2 == 0 }
val sum = list.reduce { acc, i -> acc + i }
🚫 9. Nullbiztonság
var name: String? = null // lehet null
val len = name?.length // null-safe hívás
val l = name?.length ?: 0 // Elvis-operátor (null esetén 0)
📚 10. Kolekciók
val items = listOf("alma", "banán", "körte")
for (item in items) println(item)
val numbers = mutableListOf(1, 2, 3)
numbers.add(4)
🧵 11. Kotlin korutinok (concurrency)
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("Világ!")
}
println("Helló,")
}
📱 12. Android fejlesztés Kotlinnal
Kotlin kiváltotta a Java nyelvet az Android világában:
- Android Studio natívan támogatja
- Kevesebb kód, kevesebb hiba
- ViewBinding, Jetpack Compose, Kotlin DSL, stb.
🔗 13. Kotlin Multiplatform
- Egy kódbázis több platformra: Android, iOS, web, backend
- Közös logika
sharedmodulban - Platformspecifikus kód elválasztható
🧠 14. Kotlin vs Java – Miért válaszd a Kotlint?
| Felsorolás | Kotlin előnye Java-val szemben |
|---|---|
| Nullbiztonság | Beépített típusellenőrzés |
| Kevesebb kód | Intelligens szintaxis, lambda |
| Adatosztályok | Egy sorban equals, toString, stb. |
| Kotlin DSL | Pl. Gradle Kotlin szkriptek |
| Android támogatás | Google hivatalosan ajánlja |
📘 15. Következő lépések tanuláshoz
- JetBrains Kotlin dokumentáció
- Kotlin Koans (interaktív feladatok)
- Android fejlesztés Kotlinnal (pl. Jetpack Compose)
- Kotlin for backend: Ktor, Spring Boot (Kotlin DSL)