Java Aggregation (Weak HAS-A) 🏫¶
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¶
classDiagram
School o-- Teacher
School o-- Student
Library o-- Book
Team o-- Player
(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."