Skip to content

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."


📈 Learning Path