Kotlin
Birleştirme
Tüm parçaları birleştirerek çalışan bir final uygulaması yazarsın.
Birleştirme: tüm akış
Son derste tüm parçaları birleştirirsin: görev ekleme, tamamlama ve tamamlananları yazdırma. Uygulama, gerçek bir görev takip aracının küçük bir örneği olur.
val list = TaskList()
list.addTask("Kotlin çalış")
list.addTask("Alışveriş")
list.complete(0)
println(list.listDone())
// [[x] Kotlin çalış]
Bu akış addTask, complete ve listDone yöntemlerini art arda çağırır. Her biri önceki derslerde tanımladığın bir parçadır. Böylece gerçek bir kullanım senaryosu tamamlanır.
Akışın tasarımı
Uygulamanın akışı şöyledir: önce listeye görevler eklenir, sonra biri tamamlanır, en son tamamlananlar yazdırılır. Her adım, önceki derslerde tanımlanan bir yöntemi çağırır.
list.addTask("Kotlin çalış") // L02
list.addTask("Alışveriş") // L02
list.complete(0) // L04
println(list.listDone()) // L03
Bu akış, birikimli tasarımın gücünü gösterir. Her ders bir parça ekledi ve son ders hepsini bir araya getirdi. Gerçek dünyada da uygulamalar böyle aşama aşama büyür.
Uygulama Tüm akışı birleştir
main'de val list = TaskList() oluştur. list.addTask("Kotlin çalış") ve list.addTask("Alışveriş") çağır. list.complete(0) ile ilk görevi tamamla. Son olarak println ile list.listDone()'u yazdır.
Örnek çözümü göster
class Task(val title: String) {
var done: Boolean = false
override fun toString(): String {
return if (done) "[x] $title" else "[ ] $title"
}
}
class TaskNotFound(message: String) : Exception(message)
class TaskList {
val tasks = mutableListOf<Task>()
fun addTask(title: String) {
tasks.add(Task(title))
}
fun listDone() = tasks.filter { it.done }
fun complete(index: Int) {
if (index >= tasks.size) throw TaskNotFound("Görev yok: $index")
tasks[index].done = true
}
}
fun main() {
val list = TaskList()
list.addTask("Kotlin çalış")
list.addTask("Alışveriş")
list.complete(0)
println(list.listDone())
}
Kendini test et
-
Yöntem ve amacı eşleştir
- addTask
- Görev ekle
- complete
- Görevi bitir
- listDone
- Tamamlananları al
- TaskNotFound
- Hata türü
-
Bu projede dallar nasıl seçiliyor?
- Sadece for
- Sadece if
- when ile dallar
- Sadece try
Cevabı göster
when ile dallar — Proje akışında when ile dallar kullanılır.
-
Boşluğu doldur: complete çağır
try {
list.____(0)
} catch (e: TaskNotFound) {
println(e.message)
}
Cevabı göster
try {
list.complete(0)
} catch (e: TaskNotFound) {
println(e.message)
}
Sıradaki ders: Başlangıç bölüm sınavı