Агрегація - це асоціація між двома об'єктами, яка описує співвідношення "має-а". Склад - це більш конкретний тип агрегації, що передбачає право власності. The ключова різниця між агрегацією та складом на Java це те, що, якщо об'єкт, що міститься, може існувати без існування об'єкта, що володіє, це агрегація, і якщо об'єкт, що міститься, не може існувати без існування об'єкта, що володіє, це композиція.
Об'єктно-орієнтоване програмування (OOP) - основна парадигма в розробці програмного забезпечення. Він використовується для моделювання програмного забезпечення за допомогою об'єктів. Об'єкти створюються за допомогою класів. Клас складається з властивостей та методів. У програмному забезпеченні є кілька об'єктів. Кожен об'єкт співпрацює один з одним за допомогою передачі повідомлення. Зв'язок між двома об'єктами відомий як асоціація. І агрегація, і склад - це два типи об'єднання. Співвідношення "has-a" описує, що один об'єкт може використовувати інший об'єкт. Агрегація та склад можуть бути реалізовані на підтримуючих мовах OOP. Якщо об'єкт, що міститься, може існувати без існування об'єкта, що володіє, то об'єднання між цими двома об'єктами є агрегацією. Якщо об'єкт, що міститься, не може існувати без власного об'єкта, то об'єднання між цими двома об'єктами є композицією.
1. Огляд та ключові відмінності
2. Що таке агрегація в Java
3. Що таке склад у Java
4. Подібність між агрегацією та складом на Java
5. Порівняльне порівняння - агрегація проти складу у Java у табличній формі
6. Підсумок
Агрегація - це тип асоціації. Якщо клас має посилання на сутність, він відомий як агрегація. Агрегація представляє взаємозв'язок. Об'єкт Student може мати властивості, такі як student_id, ім'я, адреса. Цей об’єкт також може мати інший об'єкт, який називається адресою, з власною інформацією, такою як місто, штат, країна. У цій ситуації студент має довідкову адресу юридичної особи. Це відносини "має".
Малюнок 01: Клас позначень
Малюнок 02: Основна програма для опису агрегації
Згідно з вищевказаною програмою, клас Марки складаються з трьох властивостей, які є марками математики, англійської мови та науки. Учень має об’єкт Знаки. У нього є свої властивості, які є позначками математики, англійської мови та науки. В основному методі створюється об’єкт Познаки і призначаються значення знаків. Об'єкт студента, який є s1, може використовувати об'єкт знаків, який є m1. Тому студент і оцінки мають відношення "має-до". Об'єкт Marks може існувати без об'єкта Student. Тому це агрегація.
Склад - це тип асоціацій. Це специфічна форма агрегації, яка передбачає право власності. Припустимо, що існує два класи, які називаються класами A і B. Якщо об'єкт класу B не може існувати, якщо об’єкт класу A знищений, то це композиція. Книга складається з багатьох сторінок. Якщо книга знищена, сторінки також знищать. Об'єкти сторінки не можуть існувати без об’єкта книги. Дивіться програму нижче.
Малюнок 03: Класний клас
Малюнок 04: Клас школи
Малюнок 05: Основна програма для опису складу
Відповідно до вищезгаданої програми, Класна кімната має два властивості, які є name та numOfStudents. Школа - це колекція предметів Класу. В основному методі створюються два об’єкти Класу. Вони додаються до "аудиторій". Ці "класи" передаються шкільному об'єкту. Нарешті, ім'я та кількість учнів класу друкується шляхом повторення колекції. Якщо об’єкт «Школа» буде знищений, об’єкти «Класна» також будуть знищені. Це приклад композиції. Він також містить відносини "має-а", а також передбачає право власності.
Агрегація проти складу на Java | |
Агрегація - це асоціація між двома об'єктами, яка описує відношення "має". | Склад - більш конкретний тип агрегації, що передбачає право власності. |
Використання | |
Агрегація використовується, коли один об’єкт використовує інший об’єкт. | Композиція використовується тоді, коли одному об’єкту належить інший об’єкт. |
Впливати на об’єкти | |
У сукупності знищення об'єкта, що володіє, не вплине на об'єкт, що містить його. | За складом знищення об'єкта, що володіє, вплине на об'єкт, що містить. |
Агрегація та склад - це два поняття в ООП. Співвідношення "has-a" описує, що один об'єкт може використовувати інший об'єкт. Агрегація - це асоціація між двома об'єктами, яка описує співвідношення "має-а". Склад - більш конкретний тип агрегації, що передбачає право власності. Різниця між агрегацією та складом на Java полягає в тому, що якщо об'єкт, що міститься, може існувати без існування об'єкта, що володіє, це об'єднання, і якщо об'єкт, що міститься, не може існувати без існування об'єкта, що володіє, це композиція.
1. «Асоціація, склад та агрегація в Яві». GeeksforGeeks, 8 лютого 2018 року. Доступний тут
2. «Агрегація на Яві - Javatpoint». Java Point. Доступний тут