CodeBlanks Logo Icon CodeBlanks

Ödünç verme

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

main.dart
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

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;
  }
}

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?

main.dart
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ı

Soru
void checkout(int index) {
  books[index].borrowed = ____;
}
Cevap
void checkout(int index) {
  books[index].borrowed = true;
}

Açıklama: checkout borrowed'ı true yapar.

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