Görev modeli
- Kotlin kursu
- Başlangıç
- Ders 83/116
- 6 dk
Task veri sınıfını ve liste yapısını tasarlarsın.
Görev modeli: data class Task
Bu projede adım adım bir yapılacaklar uygulaması kuracaksın. İlk adım, bir görevi temsil eden data class Task'ı tanımlamak.
data class Task(val title: String, val done: Boolean = false) {
fun format() = if (done) "[x] $title" else "[ ] $title"
}Her görevin bir başlığı (title) ve tamamlanma durumu (done) olur. done başlangıçta false'tür. format fonksiyonu done ise [x] title, değilse [ ] title üretir.
data class ve equals
data class'ın en büyük avantajı, equals'ın içerik bazlı olmasıdır: iki Task, alanları aynıysa eşittir. Bu, listede arama ve indexOf gibi işlemleri içerik bazlı yapar.
val a = Task("Alışveriş")
val b = Task("Alışveriş")
a == b // true
a.equals(b) // trueBu özellik ileride completeTask'ın indexOfFirst ile görev bulmasını kolaylaştırır.
Uygulama Task veri sınıfını tanımla ve yazdır
Bir data class Task(val title: String, val done: Boolean = false) tanımla; gövdesinde fun format() = if (done) "[x] $title" else "[ ] $title" olsun. main içinde val t = Task("Alışveriş") yapıp println(t.format()) ile yazdır.
Başlangıç kodu
fun main() {
// Bir Task oluştur ve format çıktısı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
fun main() {
val t = Task("Alışveriş")
println(t.format())
}
data class Task(val title: String, val done: Boolean = false) {
fun format() = if (done) "[x] $title" else "[ ] $title"
}Beklenen çıktı
[ ] Alışveriş
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 data class otomatik olarak ne üretir?
- Yalnızca equals üretilir
- Yalnızca toString üretilir
- toString, equals, hashCode, copy otomatik üretilir Doğru cevap
- Hiçbir şey otomatik üretilmez
Açıklama: data class; toString, equals, hashCode ve copy yöntemlerini otomatik üretir.
2 Boşluğu doldur: veri sınıfı
____ class Task(val title: String, val done: Boolean = false)
data class Task(val title: String, val done: Boolean = false)
Açıklama: data class Task ile veri sınıfı tanımlanır.
3 Sınıf parçasını rolüyle eşleştir
| Kavram | Anlamı |
|---|---|
data class Task |
Veri sınıfı |
val title |
Sabit başlık |
val done |
Sabit tamamlanma |
format() |
Okunabilir çıktı |