Негизги айырмасы – Java'дагы бириктирүү жана композиция
Агрегация - бул "бар-а" байланышын сүрөттөгөн эки объекттин ортосундагы бирикме. Курам - ээликти туюндурган бириктирүүнүн өзгөчө түрү. Java'дагы топтоо менен композициянын негизги айырмасы, эгерде камтылган объект ээлик кылуучу объектсиз бар болсо, анда бул бириктирүү, ал эми камтылган объект ээлик кылуучу объект болмоюнча жашай албаса, анда ал композиция болуп саналат..
Объектке багытталган программалоо (OOP) программалык камсыздоону иштеп чыгуудагы негизги парадигма. Бул объекттерди колдонуу менен программалык камсыздоону моделдөө үчүн колдонулат. Объекттер класстар аркылуу түзүлөт. Класс касиеттерден жана методдордон турат. Программада бир нече объект бар. Ар бир объект билдирүү аркылуу бири-бири менен кызматташат. Эки объекттин ортосундагы байланыш ассоциация деп аталат. Агрегация да, состав да бирикменин эки түрү. “бар-а” байланышы бир объект башка объектти колдоно ала тургандыгын сүрөттөйт. Агрегация жана составды OOP колдогон тилдерде ишке ашырууга болот. Эгерде камтылган объект ээлик кылуучу объектисиз эле бар боло турган болсо, анда ал эки объекттин ортосундагы бирикме бириктирүү болуп саналат. Эгер камтылган объект ээлик кылуучу объект болмоюнча жашай албаса, анда ал эки объекттин ортосундагы байланыш композиция болуп саналат.
Java'да топтоо деген эмне?
Агрегация – ассоциациянын бир түрү. Эгерде класстын объектинин шилтемеси болсо, ал бириктирүү деп аталат. Агрегация бар-а байланышын билдирет. Студенттик объекттин student_id, аты, дареги сыяктуу касиеттери болушу мүмкүн. Бул объект ошондой эле шаар, штат, өлкө сыяктуу өзүнүн маалыматы бар дарек деп аталган башка объектке ээ болушу мүмкүн. Бул жагдайда Студенттин мекеменин маалымдама дареги болот. Бул "бар-бир" мамилеси.
01-сүрөт: Белгилер классы
02-сүрөт: Агрегацияны сүрөттөгөн негизги программа
Жогорудагы программага ылайык, класстын Белгилери үч касиеттен турат: Математика, Англис тили жана Табигый илимдер. Студенттин Белгилер объектиси бар. Анын математика, англис тили жана илим белгилери болгон өзүнүн касиеттери бар. Негизги ыкмада Marks объекти түзүлүп, белгилердин маанилери дайындалат. s1 болгон окуучу объекти m1 болгон белгилерди колдоно алат. Демек, Студент менен Марктын ортосунда “бар-а” мамилеси бар. Белгилер объекти Студенттик объектисиз болушу мүмкүн. Демек, бул бириктирүү.
Java тилиндеги композиция деген эмне?
Композиция – ассоциациянын бир түрү. Бул менчикти туюндурган топтоонун белгилүү бир формасы. А жана В класстары деп аталган эки класс бар деп ойлойлу. Эгерде А классынын объектиси жок кылынса, В классынын объектиси жашай албаса, анда бул композиция. Китеп көп барактан турат. Китеп бузулса, барактары да бузулат. Барак объекттери китеп объектисиз болушу мүмкүн эмес. Төмөнкү программаны караңыз.
03-сүрөт: Класс классы
04-сүрөт: Мектеп классы
05-сүрөт: Композицияны сүрөттөгөн негизги программа
Жогорудагы программага ылайык, Класста аты жана окуучулардын саны болгон эки касиет бар. Мектеп класс объекттеринин жыйындысы. Негизги ыкмада эки Класс объекти түзүлөт. Алар "класстарга" кошулат. Бул «класстар» мектептин объектисине берилет. Акыр-аягы, класстын аты жана окуучулардын саны жыйнак аркылуу итерация жолу менен басылып чыгат. Мектеп объектиси жок кылынса, Класстын объекттери да жок кылынат. Бул композициянын бир мисалы. Ал ошондой эле "бар-а" байланышын камтыйт жана менчикти билдирет.
Java'да топтоо менен композициянын ортосунда кандай байланыш бар?
Агрегация жана Композиция Ассоциациянын эки түрү, ал эми Композиция - Агрегациянын адистештирилген түрү. Курам - Агрегациянын бир бөлүгү
Java'да топтоо менен композициянын ортосунда кандай айырма бар?
Агрегация жана Java'дагы Композиция |
|
Агрегация - бул "бар" мамилени сүрөттөгөн эки объекттин ортосундагы бирикме. | Композиция - ээлик кылууну билдирген топтоонун өзгөчө түрү. |
Колдонуу | |
Агрегация бир объект башка объектти колдонгондо колдонулат. | Композиция бир объект башка объектке ээ болгондо колдонулат. |
Объекттерге таасир | |
Бириктиргенде, ээлик кылуучу объектти жок кылуу камтыган объектке таасирин тийгизбейт. | Композицияда ээлик кылуучу объектти жок кылуу камтыган объектке таасирин тийгизет. |
Кыскача маалымат – Java тилиндеги бириктирүү жана композиция
Агрегация жана Композиция OOPдогу эки түшүнүк. “бар-а” байланышы бир объект башка объектти колдоно ала тургандыгын сүрөттөйт. Агрегация - бул "бар-а" байланышын сүрөттөгөн эки объекттин ортосундагы бирикме. Курам - ээликти туюндурган бириктирүүнүн өзгөчө түрү. Java'дагы топтоо менен композициянын айырмасы, эгерде камтылган объект ээлик кылуучу объектсиз бар болсо, анда бул бириктирүү, ал эми камтылган объект ээлик кылуучу объектсиз жашай албаса, анда ал композиция болуп саналат.