Java Aggregation (Weak HAS-A) 🏫
Java Aggregation is a core Java concept covering master Java Aggregation with real-world examples: Schools, Libraries, and Teams. Learn why parts can exist independently of the whole. This topic is essential for academic learning, board exam preparation, and developing optimized real-world code.
Mentor's Note: Aggregation is like a Collaboration. An object "has" another object, but they can both live separately. If the main group breaks up, the individuals still exist! 💡
🌟 The Scenario: The School & Teachers 🏫
Imagine a high school in Surat.
- The Group: The School.
- The Members: The Teachers.
- The Bond: If the school building closes down for renovation, the Teachers don't disappear! They just go to another school or stay at home. They are independent. ✅
🎨 Visual Logic: Independent Parts
(o-- represents weak collaboration)
💻 Java Implementation: The Collaboration Lab
1. The School & Teacher 🏫
Logic: A School has Teachers, but Teachers exist outside of the School.
class Teacher {
String name;
Teacher(String name) { this.name = name; }
}
class School {
String schoolName;
private List<Teacher> teachers; // 🏫 The school has a list of teachers
School(String name, List<Teacher> teachers) {
this.schoolName = name;
this.teachers = teachers; // Teachers are created OUTSIDE and passed in
}
}
2. The Library & Books 📚
Logic: A Library has Books. If the library burns down, the books you borrowed are still with you.
class Book {
String title;
Book(String t) { this.title = t; }
}
class Library {
private List<Book> books;
Library(List<Book> books) { this.books = books; }
}
3. The Cricket Team 🏏
Logic: A Team has Players. When the IPL season ends, the players still exist!
class Player {
String name;
}
class Team {
private Player captain;
void setCaptain(Player p) { this.captain = p; }
}
📊 Comparison: Composition vs. Aggregation
| Feature | Composition (Strong) | Aggregation (Weak) |
|---|---|---|
| Dependency | Parts die with Whole | Parts live independently |
| Example | House & Rooms 🏠 | School & Teachers 🏫 |
| Creation | Created inside the class | Created outside the class |
| Bond | 100% Ownership | Association/Reference |
🧠 The Master Trick to Remember
Ask one simple question:
"Can the smaller object exist without the bigger one?"
- If NO (The Room can't exist without the House) → Composition.
- If YES (The Teacher can exist without the School) → Aggregation.
💡 Interview Tip 👔
"Interviewers love asking how to implement Aggregation. The secret is: Passing the object through a constructor or setter! If you use 'new' inside the class, it becomes Composition."