Ödünç verme
- Dart kursu
- Orta seviye
- Ders 55/116
- 6 dk
checkout ve return metotlarıyla ödünç akışını yazarsın.
checkout ve returnBook
Kitap ödünç vermek için checkout metodunu, iade almak için returnBook metodunu yazacağız. İkisi de bir indeks alır ve ilgili kitabın borrowed özelliğini değiştirir.
Örnek: void checkout(int index) { books[index].borrowed = true; }. Bu metot, verilen indeksdeki kitabın borrowed'ını true yapar. returnBook ise false yapar.
Bu yapı, ödünç işleminin temelidir. Bir kitap ödünç verildiğinde borrowed true olur; iade edildiğinde false olur. İndeks parametresi hangi kitabın işlem göreceğini belirtir.
İade alma
returnBook metodu checkout'un tersini yapar. books[index].borrowed = false ile kitabı iade edilmiş işaretler. Böylece aynı kitap tekrar ödünç verilebilir.
Örnek akış: lib.addBook(Book('Sefiller'));, lib.checkout(0);, print(lib.books[0].borrowed); true verir. Sonra lib.returnBook(0);, print(lib.books[0].borrowed); false verir.
Bu iki metot birlikte ödünç döngüsünü oluşturur. Kitap çıkar, geri gelir, tekrar çıkar. Kütüphane sistemi böyle işler.
Uygulama checkout ve returnBook ekle
Library sınıfına void checkout(int index) ve void returnBook(int index) metotlarını ekle. checkout içinde books[index].borrowed = true, returnBook içinde books[index].borrowed = false yaz. main zaten checkout ve returnBook çağırıyor.
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);
}
// checkout ve returnBook metotlarını ekle
}
void main() {
var lib = Library();
lib.addBook(Book('Sefiller'));
lib.checkout(0);
print(lib.books[0].borrowed);
lib.returnBook(0);
print(lib.books[0].borrowed);
}Ö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;
}
}
void main() {
var lib = Library();
lib.addBook(Book('Sefiller'));
lib.checkout(0);
print(lib.books[0].borrowed);
lib.returnBook(0);
print(lib.books[0].borrowed);
}Beklenen çıktı
true false
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 checkout parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
int index |
İndeks parametresi |
books[index] |
İndeksteki kitap |
.borrowed = true |
Ödünç verme |
.borrowed = false |
İade alma |
2 checkout(0) ne yapar?
void checkout(int index) {
books[index].borrowed = true;
}- Tüm kitapları ödünç verir
- İlk kitabı siler
- İlk kitabın borrowed'ını true yapar Doğru cevap
- Listeyi yazdırır
Açıklama: checkout(0) 0 indeksli kitabın borrowed'ını true yapar.
3 borrowed ataması
void checkout(int index) {
books[index].borrowed = ____;
}
void checkout(int index) {
books[index].borrowed = true;
}
Açıklama: checkout borrowed'ı true yapar.