Разлика между агрегиране и композиция в Java

Съдържание:

Разлика между агрегиране и композиция в Java
Разлика между агрегиране и композиция в Java

Видео: Разлика между агрегиране и композиция в Java

Видео: Разлика между агрегиране и композиция в Java
Видео: Разликата между женския и мъжкия оргазъм 2024, Ноември
Anonim

Ключова разлика – Агрегиране срещу композиция в Java

Агрегацията е асоциация между два обекта, която описва връзката „има-а“. Композицията е по-специфичният тип агрегиране, което предполага собственост. Ключовата разлика между агрегацията и композицията в Java е, че ако съдържащият се обект може да съществува без съществуването на притежаващия обект, това е агрегация, а ако съдържащият се обект не може да съществува без съществуването на притежаващия обект, това е композиция.

Обектно-ориентираното програмиране (ООП) е основна парадигма в разработката на софтуер. Използва се за моделиране на софтуера с помощта на обекти. Обектите се създават с помощта на класове. Класът се състои от свойства и методи. В софтуера има множество обекти. Всеки обект си сътрудничи помежду си чрез предаване на съобщения. Връзката между два обекта е известна като асоциация. И агрегацията, и композицията са два вида асоцииране. Връзката „има-а“описва, че един обект може да използва друг обект. Агрегирането и съставянето могат да бъдат реализирани на поддържащи OOP езици. Ако съдържащият се обект може да съществува без съществуването на притежаващия обект, тогава връзката между тези два обекта е агрегиране. Ако съдържащият се обект не може да съществува без съществуването на притежаващия обект, тогава връзката между тези два обекта е композиция.

Какво е агрегиране в Java?

Агрегацията е вид асоциация. Ако даден клас има препратка към обект, това е известно като агрегиране. Агрегирането представлява връзката има-има. Обектът Student може да има свойства като student_id, име, адрес. Този обект може да има и друг обект, наречен адрес, със собствена информация като град, щат, държава. В тази ситуация ученикът има референтен адрес на обект. Това е връзка „има-а“.

Разлика между агрегиране и композиция в Java
Разлика между агрегиране и композиция в Java

Фигура 01: Маркира клас

Разлика между агрегиране и композиция в Java
Разлика между агрегиране и композиция в Java

Фигура 02: Основна програма за описание на агрегирането

Съгласно горната програма, класът Марки се състои от три свойства, които са оценки по математика, английски и природни науки. Ученикът има обект от марки. Той има свои собствени свойства, които са белези на математиката, английския език и науката. В основния метод се създава обект от Marks и се присвояват стойности на марки. Обектът ученик, който е s1, може да използва обекта marks, който е m1. Следователно ученикът и марките имат връзката „има“. Обектът Marks може да съществува без обекта Student. Следователно това е агрегация.

Какво е композиция в Java?

Композицията е вид асоциация. Това е специфична форма на агрегиране, която предполага собственост. Да приемем, че има два класа, наречени клас A и B. Ако обектът от клас B не може да съществува, ако обектът от клас A е унищожен, тогава това е композиция. Една книга се състои от много страници. Ако книгата бъде унищожена, страниците също ще бъдат унищожени. Обектите страница не могат да съществуват без обекта книга. Вижте програмата по-долу.

Разлика между агрегиране и композиция в Java_Фигура 03
Разлика между агрегиране и композиция в Java_Фигура 03

Фигура 03: Класна стая Клас

Разлика между агрегиране и композиция в Java_Фигура 04
Разлика между агрегиране и композиция в Java_Фигура 04

Фигура 04: Училищен клас

Ключова разлика между агрегиране и композиция в Java
Ключова разлика между агрегиране и композиция в Java

Фигура 05: Основна програма за описание на композиция

Съгласно горната програма, Classroom има две свойства, които са name и numOfStudents. Училището е колекция от обекти на класната стая. В основния метод се създават два обекта Classroom. Те се добавят към „класни стаи“. Тези „класни стаи“се предават на училищния обект. И накрая, името на класната стая и броят на учениците се отпечатват чрез итерация през колекцията. Ако училищният обект бъде унищожен, обектите на класната стая също ще бъдат унищожени. Това е пример за композиция. Той също така съдържа връзката „има-а“и също предполага собственост.

Каква е връзката между агрегирането и композицията в Java?

Агрегирането и Композицията са два типа асоцииране, а Композицията е специализиран тип Агрегиране. Композицията е подмножество на агрегацията

Каква е разликата между агрегиране и композиция в Java?

Агрегация срещу композиция в Java

Агрегацията е асоциация между два обекта, която описва връзката „има“. Композицията е по-специфичен тип агрегиране, което предполага собственост.
Използване
Агрегацията се използва, когато един обект използва друг обект. Композицията се използва, когато един обект притежава друг обект.
Влияние върху обекти
При агрегиране унищожаването на притежавания обект няма да засегне съдържащия се обект. При композиция, унищожаването на притежавания обект ще засегне съдържащия се обект.

Резюме – Агрегиране срещу композиция в Java

Агрегацията и композицията са две концепции в ООП. Връзката „има-а“описва, че един обект може да използва друг обект. Агрегирането е асоциация между два обекта, която описва връзката „има-а“. Композицията е по-специфичен тип агрегиране, което предполага собственост. Разликата между агрегирането и композицията в Java е, че ако съдържащият се обект може да съществува без съществуването на притежаващия обект, това е агрегиране и ако съдържащият се обект не може да съществува без съществуването на притежаващия обект, това е композиция.

Препоръчано: