CodeBlanks Logo Icon CodeBlanks

Görev ekleme

addTask fonksiyonuyla listeye görev eklemeyi öğrenirsin.

Görev ekleme: TodoList ve addTask

Şimdi görevleri saklayacak ikinci bir sınıf kuracağız: TodoList. Bu sınıf, Task nesnelerini bir MutableList<Task> içinde tutar ve addTask metodu ile yeni görev ekler.

class TodoList {
    val tasks = mutableListOf<Task>()
    fun addTask(title: String) {
        tasks.add(Task(title))
    }
}

addTask yeni bir Task oluşturup listeye ekler. Çağıran yalnızca başlığı verir; nesne oluşturma işi metot içinde saklı kalır.

TodoList ve Task birlikte

TodoList sınıfı, Task nesnelerini bir listede saklar. addTask her çağrıda listeye bir eleman katar. Listeyi yazdırmak için tasks.forEach { println(it.format()) } kullanabilirsin.

val list = TodoList()
list.addTask("Alışveriş")
list.addTask("Ödev")
list.tasks.forEach { println(it.format()) }
// [ ] Alışveriş
// [ ] Ödev

Bir sonraki adımda bu yazdırmayı bir listTasks metoduna taşıyacağız; böylece ana kod daha sade kalacak.

Uygulama TodoList sınıfını ve addTask'ı tanımla

Bir class TodoList tanımla; içinde val tasks = mutableListOf<Task>() ve fun addTask(title: String) { tasks.add(Task(title)) } olsun. main içinde bir TodoList oluştur, iki görev ekle ve list.tasks.forEach { println(it.format()) } ile yazdır.

Başlangıç kodu

Main.kt
fun main() {
    val list = TodoList()
    // addTask ile iki görev ekle ve forEach ile format çıktılarını yazdır
}

// Task veri sınıfını tanımla: title (String), done (Boolean, varsayılan false)
// format fonksiyonu: done ise "[x] title", değilse "[ ] title"

Örnek çözüm

Main.kt
fun main() {
    val list = TodoList()
    list.addTask("Alışveriş")
    list.addTask("Ödev")
    list.tasks.forEach { println(it.format()) }
}

data class Task(val title: String, val done: Boolean = false) {
    fun format() = if (done) "[x] $title" else "[ ] $title"
}

class TodoList {
    val tasks = mutableListOf<Task>()
    fun addTask(title: String) {
        tasks.add(Task(title))
    }
}

Beklenen çıktı

[ ] Alışveriş
[ ] Ödev

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: listeye Task ekle

Soru
tasks.____(Task(title))
Cevap
tasks.add(Task(title))

Açıklama: tasks.add(Task(title)) yeni görevi listeye katar.

2 İfadeyi rolüyle eşleştir

Kavram Anlamı
MutableList<Task> Görev listesi
addTask(title) Yeni görev ekler
tasks.add(...) Listeye katar
Task(title) Yeni görev nesnesi

3 addTask metodunun dönüş türü ne olmalı?

  • Int (indeks)
  • Boolean
  • Task (eklenen)
  • Unit (yalnızca ekler) Doğru cevap

Açıklama: addTask bir şey döndürmez; yalnızca listeye ekler. Bu yüzden Unit'tir.

Başlangıç bölümündeki tüm dersler