CodeBlanks Logo Icon CodeBlanks

Birleştirme

Kütüphane sınıfını menü döngüsüyle birleştirirsin.

Birleştirme

Artık tüm parçaları birleştirme zamanı. Book sınıfı, Library sınıfı, addBook, checkout, returnBook ve search metotları hazır. Geriye yalnızca main içinde kütüphaneyi oluşturmak, kitap eklemek, ödünç vermek ve aramak kalıyor.

Çalışan oturum şöyle olur: kütüphane oluştur, üç kitap ekle, birini ödünç ver, arama yap. Çıktı hem ödünç durumunu hem arama sonuçunu içerir.

Bu, nesne yönelimli bir uygulamanın nasıl parça parça kurulduğunu gösterir. Her ders bir tuğla ekledi; şimdi bina tamam.

Çalışan oturum

Tüm sınıflar tanımlı. main içinde kütüphane oluştur, üç kitap ekle, birini ödünç ver ve arama yap. Çıktı önce ödünç durumunu, sonra arama sonuçunu gösterir.

Üç kitap ve 've' sorgusuyla: checkout(0) ilk kitabı ödünç verir, print(lib.books[0].borrowed) true verir. search('ve') iki kitap bulur (Suç ve Ceza, Savaş ve Barış), results.length 2 verir.

Proje tamam! OOP, listeler, koleksiyon metotları ve koşulları bir arada kullandın. Bu yapıyı genişleterek daha büyük kütüphane sistemleri kurabilirsin.

Uygulama Çalışan kütüphane

Tüm sınıflar tanımlı (Book, Library, addBook, checkout, returnBook, search). main içinde bir Library oluştur, üç kitap ekle ('Sefiller', 'Suç ve Ceza', 'Savaş ve Barış'), lib.checkout(0) çağır, lib.books[0].borrowed'ı yazdır, lib.search('ve') yapıp sonuçun length'ini yazdır.

Başlangıç kodu

main.dart
class Book {
  String title;
  bool borrowed = false;
  Book(this.title);
}

class Library {
  List<Book> books = [];
  void addBook(Book b) {
    books.add(b);
  }
  void checkout(int index) {
    books[index].borrowed = true;
  }
  void returnBook(int index) {
    books[index].borrowed = false;
  }
  List<Book> search(String query) {
    return books.where((b) => b.title.contains(query)).toList();
  }
}

// main içinde kütüphane oluştur, kitap ekle, checkout ve search çağır

void main() {
  // kütüphane oluştur, üç kitap ekle, checkout ve search çağır
}

Örnek çözüm

main.dart
class Book {
  String title;
  bool borrowed = false;
  Book(this.title);
}

class Library {
  List<Book> books = [];
  void addBook(Book b) {
    books.add(b);
  }
  void checkout(int index) {
    books[index].borrowed = true;
  }
  void returnBook(int index) {
    books[index].borrowed = false;
  }
  List<Book> search(String query) {
    return books.where((b) => b.title.contains(query)).toList();
  }
}

void main() {
  var lib = Library();
  lib.addBook(Book('Sefiller'));
  lib.addBook(Book('Suç ve Ceza'));
  lib.addBook(Book('Savaş ve Barış'));
  lib.checkout(0);
  print(lib.books[0].borrowed);
  var results = lib.search('ve');
  print(results.length);
}

Beklenen çıktı

true
2

Soru ve cevaplar

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

1 Hangi sıra mantıklı?

  • addBook, checkout, search Doğru cevap
  • checkout, addBook, search
  • search, addBook, checkout
  • addBook, search, checkout

Açıklama: önce kitap eklenir, sonra ödünç verilir, en son arama yapılır.

2 Metotları amacına eşleştir

Kavram Anlamı
addBook Kitap ekleme
checkout Ödünç verme
returnBook İade alma
search Başlığa göre arama

3 Üçüncü kitabı ekle

Soru
void main() {
  var lib = Library();
  lib.addBook(Book('Sefiller'));
  lib.addBook(Book('Suç ve Ceza'));
  ____.addBook(Book('Savaş ve Barış'));
  lib.checkout(0);
  print(lib.books[0].borrowed);
  var results = lib.search('ve');
  print(results.length);
}
Cevap
void main() {
  var lib = Library();
  lib.addBook(Book('Sefiller'));
  lib.addBook(Book('Suç ve Ceza'));
  lib.addBook(Book('Savaş ve Barış'));
  lib.checkout(0);
  print(lib.books[0].borrowed);
  var results = lib.search('ve');
  print(results.length);
}

Açıklama: lib.addBook ile üçüncü kitap eklenir.

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