CodeBlanks Logo Icon CodeBlanks

Ödünç akışı

borrow ve return ile ödünç işlemlerini yazarsın.

Ödünç akışı

Dördüncü ders Loan sınıfını tanımlar. Bir ödünç, bir üyenin bir kitabı ödünç aldığını temsil eder. Loan sınıfı, Book ve Member nesnelerini bir araya getirir.

Örnek: class Loan { Book book; Member member; Loan(Book b, Member m) { book = b; member = m; } }. Bu sınıf iki nesne referansı tutar. toString metodu ödünç ilişkisini gösterir: member.name + " <- " + book.title. Ödünç akışı, kütüphanenin çekirdek işlemlerinden biridir; kitabın kimde olduğunu izler. İleride iade ve tarih eklenebilir.

Nesne referansları

Loan sınıfı ilkel türler değil, nesne referansları tutar. Book book alanı bir Book nesnesine, Member member alanı bir Member nesnesine işaret eder. Bu sayede ödünç, kitap ve üye arasındaki ilişkiyi canlı tutar.

Örnek: Book b = new Book("Java", "Gosling"); Member m = new Member("Ayşe", 101); Loan loan = new Loan(b, m);. Burada loan nesnesi b ve m'ye referans tutar. loan.member.name ile üyenin ismine, loan.book.title ile kitabın başlığına erişilir. Nesne referansları, sınıflar arası ilişkiyi sağlar.

Uygulama Loan sınıfını ekle

Dosyaya Loan sınıfını ekle. Book book ve Member member alanlarını yaz. Loan(Book b, Member m) yapıcısı ekle; her iki alanı da ata. public String toString() metodu ekle; member.name + " <- " + book.title döndürsün. Loan içine main koy; bir Book, bir Member ve bir Loan örneği oluştur, Loan örneğini yazdır.

Başlangıç kodu

Main.java
class Library {
    String name;
    Library(String n) {
        name = n;
    }
    public String toString() {
        return "Kütüphane: " + name;
    }
}
class Book {
    String title;
    String author;
    Book(String t, String a) {
        title = t;
        author = a;
    }
    public String toString() {
        return title + " - " + author;
    }
}
class Member {
    String name;
    int id;
    Member(String n, int i) {
        name = n;
        id = i;
    }
    public String toString() {
        return name + " (" + id + ")";
    }
}

// Loan sınıfını ekle
// book ve member alanları, yapıcı ve toString
// main içinde örnekle ve yazdır

Örnek çözüm

Main.java
class Library {
    String name;
    Library(String n) {
        name = n;
    }
    public String toString() {
        return "Kütüphane: " + name;
    }
}
class Book {
    String title;
    String author;
    Book(String t, String a) {
        title = t;
        author = a;
    }
    public String toString() {
        return title + " - " + author;
    }
}
class Member {
    String name;
    int id;
    Member(String n, int i) {
        name = n;
        id = i;
    }
    public String toString() {
        return name + " (" + id + ")";
    }
}
class Loan {
    Book book;
    Member member;
    Loan(Book b, Member m) {
        book = b;
        member = m;
    }
    public String toString() {
        return member.name + " <- " + book.title;
    }
    public static void main(String[] args) {
        Book b = new Book("Java", "Gosling");
        Member m = new Member("Ayşe", 101);
        Loan loan = new Loan(b, m);
        System.out.println(loan);
    }
}

Beklenen çıktı

Ayşe <- Java

Soru ve cevaplar

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

1 Loan yapıcısını tamamla

Soru
class Loan {
    Book book;
    Member member;
    ____(Book b, Member m) {
        book = b;
        member = m;
    }
}
Cevap
class Loan {
    Book book;
    Member member;
    Loan(Book b, Member m) {
        book = b;
        member = m;
    }
}

Açıklama: Yapıcı ismi sınıf ismiyle aynı olmalı.

2 Loan bölümlerini eşle

Kavram Anlamı
Book book Kitap referansı
Member member Üye referansı
Loan(Book b, Member m) Yapıcı
member.name Üye ismine erişim

3 Loan sınıfı hangi iki nesneyi birleştirir?

  • Book ve Book
  • Book ve Member Doğru cevap
  • Member ve Library
  • Library ve Book

Açıklama: Book ve Member — ödünç, kitap ve üyeyi ilişkilendirir.

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