CodeBlanks Logo Icon CodeBlanks

Yorum ekleme

addComment ile yorumsal akışı yazarsın.

Post'a yorum bağlama

Blog yazılarına yorum eklemek için Post sınıfına List<Comment> comments alanı ekleriz. Böylece her yazı kendi yorumlarını taşır. addComment(Comment c) metodu listeye yeni yorum ekler.

Bu tasarımda Post ve Comment arasında composition ilişkisi vardır: bir Post, Comment'lerden oluşur. Comment, Post'tan bağımsız bir sınıf olarak kalır; tek bir Comment birden fazla Post'ta yeniden kullanılabilir.

addComment metodu

addComment metodu addPost'a benzer şekilde çalışır: comments.add(c); ile yorumu listeye ekler. Çağırmak için post.addComment(new Comment(...)) yazarsın. Yorum, yalnızca ilgili Post'un listesine eklenir; başka yazılar etkilenmez.

Her Post kendi yorum listesini tuttuğu için iki ayrı yazıya eklenen yorumlar karışmaz. post.comments.size() ile yazının yorum sayısını öğrenebilirsin. Bu, composition'ın doğal sonucudur.

Uygulama Post'a comments alanı ve addComment ekle

Üstteki Post sınıfına List<Comment> comments = new ArrayList<>(); alanı ekle ve void addComment(Comment c) metodu comments.add(c); içersin. main içinde bir Post p = new Post("İlk", "Ayşe"); oluştur, p.addComment(new Comment("Mehmet", "Güzel")); ile bir yorum ekle ve System.out.println(p.comments.size()); ile yorum sayısını 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;
    }
}

// Post sınıfına comments alanı ve addComment metodu ekle

// main: bir Post oluştur, bir yorum ekle ve sayıyı yazdır

Örnek çözüm

Main.java
class Post {
    String title;
    String author;
    List<Comment> comments = new ArrayList<>();
    Post(String title, String author) {
        this.title = title;
        this.author = author;
    }
    void addComment(Comment c) { comments.add(c); }
}

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

public class Main {
    public static void main(String[] args) {
        Post p = new Post("İlk", "Ayşe");
        p.addComment(new Comment("Mehmet", "Güzel"));
        System.out.println(p.comments.size());
    }
}

Beklenen çıktı

1

Soru ve cevaplar

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

1 Post-Comment ilişkisi ne tür bir ilişkidir?

  • Composition (birlik) Doğru cevap
  • Miras (inheritance)
  • Bağımlılık (dependency)
  • Soyutlama (abstraction)

Açıklama: Post, Comment'lerinden oluşur; composition ilişkisidir.

2 Post-Comment ilişkisini eşleştir

Kavram Anlamı
composition Post, Comment'lerini içerir
List<Comment> Yorum koleksiyonu türü
addComment Yorum ekler
comments.size() Yorum sayısı

3 Yorum ekleme çağrısını tamamla

Soru
p.add____(new Comment("Mehmet", "Güzel"));
Cevap
p.addComment(new Comment("Mehmet", "Güzel"));

Açıklama: addComment metodu listeye yeni yorum ekler.

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