CodeBlanks Logo Icon CodeBlanks

Blog sınıfı

Blog sınıfıyla koleksiyon yönetimini kurarsın.

Blog sınıfı koleksiyonu yönetir

Tek bir Post örneği elindeyken onu bir listede toplamak gerekir. Blog sınıfı bu işi üstlenir: posts adında bir List<Post> tutar ve addPost metodu ile yeni yazıları ekler.

List<Post> posts = new ArrayList<>(); satırı her yeni Blog örneğine boş bir liste verir. ArrayList dinamik dizi gibi davranır; add ile eleman eklenir.

addPost metodu

addPost metodu tek satırlık bir iş yapar: posts.add(post);. Çağırmak için blog.addPost(new Post(...)) yazarsın; Post örneği tek satırda hazır olur. Bu yöntem, koleksiyonu dışarıdan döngüyle yönetmeye göre çok daha okunaklıdır.

Eklemeden sonra blog.posts.size() kaç yazı olduğunu söyler. Bu sayı, ekleme işinin başarılı olduğunu doğrular. Listeyi yazdırırken for (Post p : blog.posts) döngüsü kullanırsın.

Uygulama Blog sınıfını ve addPost metodunu yaz

Üstteki Post ve Comment sınıfları hazır. Şimdi class Blog tanımla; List<Post> posts alanı, boş ArrayList ile başlat, void addPost(Post post) metodu posts.add(post); içersin. main içinde Blog blog = new Blog(); oluştur, iki yazı ekle ve System.out.println(blog.posts.size()); ile sayıyı yazdır.

Başlangıç kodu

Main.java
import java.util.List;
import java.util.ArrayList;

class Post {
    String title;
    String author;
    Post(String title, String author) {
        this.title = title;
        this.author = author;
    }
}

class Comment {
    String author;
    String text;
    Comment(String author, String text) {
        this.author = author;
        this.text = text;
    }
}

// Blog sınıfını tanımla: posts listesi ve addPost metodu

// main: bir blog oluştur, iki yazı ekle, sayıyı yazdır

Örnek çözüm

Main.java
class Post {
    String title;
    String author;
    Post(String title, String author) {
        this.title = title;
        this.author = author;
    }
}

class Comment {
    String author;
    String text;
    Comment(String author, String text) {
        this.author = author;
        this.text = text;
    }
}

class Blog {
    List<Post> posts = new ArrayList<>();
    void addPost(Post post) { posts.add(post); }
}

public class Main {
    public static void main(String[] args) {
        Blog blog = new Blog();
        blog.addPost(new Post("İlk", "Ayşe"));
        blog.addPost(new Post("İkinci", "Mehmet"));
        System.out.println(blog.posts.size());
    }
}

Beklenen çıktı

2

Soru ve cevaplar

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

1 Liste bildirimini tamamla

Soru
List<Post> posts = new ____<>();
Cevap
List<Post> posts = new ArrayList<>();

Açıklama: ArrayList dinamik dizi uygular.

2 blog.posts.size() ne döndürür?

  • İlk yazının başlığını
  • Listenin bellek adresini
  • Yazıların yazarlarını
  • Listedeki yazı sayısını Doğru cevap

Açıklama: size() listedeki eleman sayısını döndürür.

3 Blog sınıfı kavramlarını eşleştir

Kavram Anlamı
List<Post> Yazı koleksiyonu türü
ArrayList<> Somut liste uygulaması
addPost Listeye yazı ekler
size() Listedeki eleman sayısı

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