CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

Orta seviye finali mini uygulamasının iskeletini tasarlarsın.

Proje: Kütüphane uygulaması

Bu beş derslik projede bir kütüphane konsol uygulaması kuracaksın. Her ders bir parça ekler; son derste OOP + koleksiyonlar + Flow + dosya I/O'yu birleştiren bir uygulama elde edeceksin.

Önceki gruplarda öğrendiğin data class ile veri modelleme, sealed class ile hiyerarşi, MutableList ile koleksiyon yönetimi, java.io.File ile dosya I/O ve Flow ile asenkron akış kavramlarını kullanacaksın. Birinci derste Book veri sınıfını ve format metodunu tanımlayacaksın.

Book veri sınıfı

Bir kütüphanedeki kitabı temsil etmek için data class Book tanımlayacaksın. Veri sınıfı, equals, hashCode, toString ve copy üretir. Kitabın başlığı, yazarı ve yayın yılı özellikleri olacak.

data class Book(
    val title: String,
    val author: String,
    val year: Int
) {
    fun format(): String = "$title - $author ($year)"
}

format metodu, kitabı okunabilir bir dize olarak verir: Suç ve Ceza - Dostoyevski (1866). Bu, kitabı ekrana yazdırırken ve dosyaya kaydederken kullanılacak. İlerleyen dersler category özelliğini ekleyecek ve format'ı genişletecek.

Uygulama Book veri sınıfını tanımla

data class Book(val title: String, val author: String, val year: Int) tanımla. Gövdesinde fun format(): String = "$title - $author ($year)" olsun. main içinde val b = Book("Suç ve Ceza", "Dostoyevski", 1866) yapıp println(b.format()) ile yazdır.

Başlangıç kodu

Main.kt
// Book veri sınıfı tanımla: title (String), author (String), year (Int)
// format metodu: "{title} - {author} ({year})" döndürsün
// main: Book örneği oluştur ve format çıktısını println ile yazdır
fun main() {
    // buraya yaz
}

Örnek çözüm

Main.kt
data class Book(val title: String, val author: String, val year: Int) {
    fun format(): String = "$title - $author ($year)"
}

fun main() {
    val b = Book("Suç ve Ceza", "Dostoyevski", 1866)
    println(b.format())
}

Beklenen çıktı

Suç ve Ceza - Dostoyevski (1866)

Soru ve cevaplar

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

1 Kütüphane projesinin ilk dersinde ne tanımlanır?

  • Flow akışı
  • Library sınıfı
  • Book veri sınıfı Doğru cevap
  • Dosya kaydetme

Açıklama: İlk ders Book veri sınıfını ve format metodunu tanımlar.

2 Veri sınıfı anahtar kelimesi

Soru
____ class Book(val title: String, val author: String, val year: Int)
Cevap
data class Book(val title: String, val author: String, val year: Int)

Açıklama: data class Book ile veri sınıfı tanımlanır.

3 Book parçalarını eşle

Kavram Anlamı
data class Book Veri sınıfı
val title Başlık
val year Yayın yılı
format() Okunabilir çıktı

Orta seviye bölümündeki tüm dersler