Java
Birleştirme
Blog sınıfını menü döngüsüyle birleştirirsin.
Blog birleştirme
Son derste tüm parçaları birleştirip çalışan bir blog yapacağız. Post, Comment ve Blog sınıfları hazır. main metodunda blog'a iki yazı ekler, her yazıya birer yorum bağlar ve yazı başlıklarını ekrana yazdırırız.
Bu, nesne yönelimli tasarımın gücünü gösterir: her sınıf tek bir iş yapar, sınıflar composition ile bağlanır, Blog tüm yönetimi üstlenir.
Birleştirme sırası
Son adımda tüm parçaları mantıklı bir sırayla çağırırız: önce Blog blog = new Blog(); ile boş bir blog, sonra addPost ile yazılar, sonra her yazıya addComment ile yorumlar. En sonunda blog.posts.get(i).title ile başlıkları yazdırırız.
Bu sıra, bağımlılıkları gözetir: yorum eklemek için önce yazı eklenmiş olmalı. Akış, gerçek bir uygulamanın veri akışını küçük ölçekte yansıtır.
Uygulama Tüm blog'u birleştir
Tüm parçaları bir araya getir. Post, Comment ve Blog sınıflarını (yorum listesi ve findByTitle dahil) yaz. main içinde bir Blog blog = new Blog(); oluştur, iki yazı ekle, her birine birer yorum bağla ve her yazının başlığını ayrı satırda yazdır: System.out.println(blog.posts.get(0).title); ve System.out.println(blog.posts.get(1).title);.
Örnek çözümü göster
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;
}
}
class Blog {
List<Post> posts = new ArrayList<>();
void addPost(Post post) { posts.add(post); }
List<Post> findByTitle(String keyword) {
List<Post> result = new ArrayList<>();
for (Post post : posts) {
if (post.title.contains(keyword)) {
result.add(post);
}
}
return result;
}
}
public class Main {
public static void main(String[] args) {
Blog blog = new Blog();
blog.addPost(new Post("Java giriş", "Ayşe"));
blog.addPost(new Post("Diğer", "Mehmet"));
blog.posts.get(0).addComment(new Comment("Ali", "Güzel"));
blog.posts.get(1).addComment(new Comment("Veli", "Teşekkür"));
System.out.println(blog.posts.get(0).title);
System.out.println(blog.posts.get(1).title);
}
}
Kendini test et
-
Blog projesinde composition nerede kullanıldı?
- Blog, Post'tan miras alır
- Comment, Blog'u implements eder
- Post, Comment listesini içerir
- Post, abstract bir sınıftır
Cevabı göster
Post, Comment listesini içerir — Post, List<Comment> ile yorumlarını içerir; composition'dır.
-
Yazıya erişim çağrısını tamamla
blog.posts.____(0).addComment(new Comment("Ali", "Güzel"));
Cevabı göster
blog.posts.get(0).addComment(new Comment("Ali", "Güzel"));
-
Blog projesi özetini eşleştir
- Post
- Yazı verilerini tutar
- Comment
- Yorum verilerini tutar
- Blog
- Yazı koleksiyonunu yönetir
- composition
- Post, Comment listesini içerir
Sıradaki ders: File sınıfı