CodeBlanks Logo Icon CodeBlanks

Veri modeli

Veri modelini ve koleksiyonları kurarsın.

Catalog sınıfı ve ArrayList

Birden fazla kitabı yönetmek için bir Catalog sınıfı yazarsın. İçinde ArrayList<Book> bulunur ve addBook yöntemi yeni kitap ekler.

import java.util.ArrayList;
class Catalog {
  ArrayList<Book> books = new ArrayList<>();
  void addBook(String title) {
    books.add(new Book(title));
  }
}

addBook bir başlık alır, yeni bir Book yaratır ve listeye ekler. ArrayList dinamik bir dizidir; kapasiteyi sen yönetmezsin. Listeyi yazdırmak için System.out.println(cat.books) yeterlidir; toString her kitabı gösterir.

Listeyi yazdır

System.out.println(cat.books) listenin tümünü yazdırır. ArrayList'in toString'i her öğeyi virgülle ayırır ve köşeli parantez içine alır. Her Book'un kendi toString'i çağrılır.

cat.addBook("Suç ve Ceza");
cat.addBook("Sefiller");
System.out.println(cat.books);
// [[müsait] Suç ve Ceza, [müsait] Sefiller]

Bu sayede ayrı bir döngü yazmadan listenin içeriğini görebilirsin. Book sınıfındaki toString tasarımının burada değer kazandığını fark et; iyi bir toString hata ayıklamayı kolaylaştırır.

Uygulama İki kitap ekle ve yazdır

Catalog sınıfına void addBook(String title) yöntemi ekle: yeni Book yaratıp books listesine ekle. main'de cat.addBook("Suç ve Ceza") ve cat.addBook("Sefiller") çağır, sonra cat.books yazdır.

Başlangıç kodu

Main.java
import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    Catalog cat = new Catalog();
    // İki kitap ekle ve listeyi yazdır
  }
}

class Book {
  String title;
  boolean available;
  Book(String title) {
    this.title = title;
    this.available = true;
  }
  public String toString() {
    return (available ? "[müsait] " : "[ödünç] ") + title;
  }
}

class Catalog {
  ArrayList<Book> books = new ArrayList<>();
  // addBook metodunu yaz: yeni Book oluştur ve books'a ekle
}

Örnek çözüm

Main.java
// Catalog içinde:
void addBook(String title) {
  books.add(new Book(title));
}
// main içinde:
cat.addBook("Suç ve Ceza");
cat.addBook("Sefiller");
System.out.println(cat.books);

Beklenen çıktı

[[müsait] Suç ve Ceza, [müsait] Sefiller]

Soru ve cevaplar

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

1 Kavramı amacıyla eşleştir

Kavram Anlamı
ArrayList<Book> Kitap listesi
addBook(String) Kitap ekle
new Book(title) Nesne yarat
books.add(...) Listeye koy

2 addBook("Suç ve Ceza") ne yapar?

  • Listeden kitap siler
  • Kitabı ödünç verir
  • Yeni Book yaratıp listeye ekler Doğru cevap
  • Listeyi yazdırır

Açıklama: addBook yeni bir Book nesnesi yaratır ve ArrayList'e ekler.

3 addBook çağır

Soru
Catalog cat = new Catalog();
cat.____("Sefiller");
Cevap
Catalog cat = new Catalog();
cat.addBook("Sefiller");

Açıklama: addBook bir başlık alır ve listeye yeni kitap ekler.

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