Birleştirme
- Dart kursu
- Orta seviye
- Ders 57/116
- 6 dk
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
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
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
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);
}
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.