Տարբերությունը Java-ում ագրեգացման և կազմի միջև

Բովանդակություն:

Տարբերությունը Java-ում ագրեգացման և կազմի միջև
Տարբերությունը Java-ում ագրեգացման և կազմի միջև

Video: Տարբերությունը Java-ում ագրեգացման և կազմի միջև

Video: Տարբերությունը Java-ում ագրեգացման և կազմի միջև
Video: Javascript - Փոփոխականների հայտարարման Տարբերությունները (var, let, const) 2024, Հուլիսի
Anonim

Հիմնական տարբերություն – ագրեգացիա ընդդեմ կոմպոզիցիայի Java-ում

Ագրեգացիան երկու օբյեկտների միջև ասոցիացիա է, որը նկարագրում է «has-a» հարաբերությունը: Կազմը ագրեգացիայի ավելի կոնկրետ տեսակն է, որը ենթադրում է սեփականություն: Java-ում ագրեգացիայի և կոմպոզիցիայի հիմնական տարբերությունն այն է, որ եթե պարունակվող օբյեկտը կարող է գոյություն ունենալ առանց սեփականության օբյեկտի գոյության, դա ագրեգացիա է, և եթե պարունակվող օբյեկտը չի կարող գոյություն ունենալ առանց սեփականատիրոջ առկայության, դա կոմպոզիցիա է:.

Օբյեկտ-կողմնորոշված ծրագրավորումը (OOP) ծրագրային ապահովման մշակման հիմնական պարադիգմ է:Այն օգտագործվում է ծրագրային ապահովման մոդելավորման համար՝ օգտագործելով օբյեկտներ: Օբյեկտները ստեղծվում են դասերի միջոցով: Դասը բաղկացած է հատկություններից և մեթոդներից: Ծրագրային ապահովման մեջ կան բազմաթիվ օբյեկտներ: Յուրաքանչյուր օբյեկտ համագործակցում է միմյանց հետ հաղորդագրություն փոխանցելու միջոցով: Երկու օբյեկտների հարաբերությունները հայտնի են որպես ասոցիացիա: Ե՛վ ագրեգացումը, և՛ կազմը ասոցիացիայի երկու տեսակ են: «Ունի-ա» հարաբերությունը նկարագրում է, որ մի օբյեկտ կարող է օգտագործել մեկ այլ օբյեկտ: Համախմբումը և կոմպոզիցիան կարող են իրականացվել OOP աջակցող լեզուներով: Եթե պարունակվող օբյեկտը կարող է գոյություն ունենալ առանց սեփականության օբյեկտի գոյության, ապա այդ երկու օբյեկտների միջև կապը ագրեգացիա է: Եթե պարունակվող օբյեկտը չի կարող գոյություն ունենալ առանց սեփական օբյեկտի գոյության, ապա այդ երկու օբյեկտների միջև կապը կոմպոզիցիա է։

Ի՞նչ է ագրեգացիան Java-ում:

Ագրեգացիան ասոցիացիայի տեսակ է: Եթե դասը ունի կազմակերպության հղում, այն հայտնի է որպես ագրեգացիա: Ագրեգացիան ներկայացնում է ունի-հարաբերություն:Student օբյեկտը կարող է ունենալ այնպիսի հատկություններ, ինչպիսիք են student_id, անունը, հասցեն: Այս օբյեկտը կարող է ունենալ նաև մեկ այլ օբյեկտ, որը կոչվում է հասցե՝ իր տեղեկություններով, ինչպիսիք են քաղաքը, նահանգը, երկիրը: Այս իրավիճակում Ուսանողն ունի կազմակերպության տեղեկատու հասցե: Դա «ունի-ա» հարաբերություն է։

Տարբերությունը Java-ում ագրեգացիայի և կազմի միջև
Տարբերությունը Java-ում ագրեգացիայի և կազմի միջև

Գծապատկեր 01. Նիշերի դաս

Տարբերությունը Java-ում ագրեգացիայի և կազմի միջև
Տարբերությունը Java-ում ագրեգացիայի և կազմի միջև

Նկար 02. Ագրեգացիան նկարագրելու հիմնական ծրագիր

Ըստ վերոնշյալ ծրագրի՝ դասի Marks-ը բաղկացած է երեք հատկությունից, որոնք են՝ Maths, English և Science նշանները: Ուսանողն ունի նշանի առարկա:Այն ունի իր սեփական հատկությունները, որոնք մաթեմատիկայի, անգլերենի և գիտության նշաններ են: Հիմնական մեթոդում ստեղծվում է Marks-ի օբյեկտ և նշանակվում են նշանների արժեքներ: Ուսանողի օբյեկտը, որը s1 է, կարող է օգտագործել նշանների օբյեկտը, որը m1 է: Հետևաբար, Ուսանողը և Նշանները ունեն «ունի-ա» հարաբերությունները: Marks օբյեկտը կարող է գոյություն ունենալ առանց Student Object-ի: Հետևաբար, դա ագրեգացիա է։

Ի՞նչ է կոմպոզիցիան Java-ում:

Կոմպոզիցիան ասոցիացիայի տեսակ է: Դա ագրեգացիայի հատուկ ձև է, որը ենթադրում է սեփականություն: Ենթադրենք, որ կան երկու դասեր, որոնք կոչվում են A և B դասեր: Եթե B դասի օբյեկտը չի կարող գոյություն ունենալ, եթե A դասի օբյեկտը ոչնչացվի, ապա դա կոմպոզիցիա է: Գիրքը բաղկացած է բազմաթիվ էջերից։ Եթե գիրքը ոչնչացվի, էջերն էլ կկործանվեն։ Էջի օբյեկտները չեն կարող գոյություն ունենալ առանց գրքի օբյեկտի: Տե՛ս ստորև ներկայացված ծրագիրը։

Java-ում ագրեգացման և կազմի միջև տարբերությունը_Նկար 03
Java-ում ագրեգացման և կազմի միջև տարբերությունը_Նկար 03

Գծապատկեր 03. Դասարանական դաս

Java-ում ագրեգացման և կազմի միջև տարբերությունը_Նկար 04
Java-ում ագրեգացման և կազմի միջև տարբերությունը_Նկար 04

Նկար 04. Դպրոցական դասարան

Հիմնական տարբերությունը Java-ում ագրեգացիայի և կազմի միջև
Հիմնական տարբերությունը Java-ում ագրեգացիայի և կազմի միջև

Նկար 05. Կազմը նկարագրելու հիմնական ծրագիր

Ըստ վերոնշյալ ծրագրի՝ Classroom-ն ունի երկու հատկություն՝ name և numOfStudents: Դպրոցը Դասարանի առարկաների հավաքածու է: Հիմնական մեթոդում ստեղծվում են երկու Classroom օբյեկտներ։ Դրանք ավելացվել են «դասարաններին»: Այս «դասասենյակները» փոխանցվում են դպրոցի օբյեկտին։Վերջապես, դասարանի անվանումը և ուսանողների թիվը տպագրվում են հավաքածուի մեջ կրկնելով: Եթե դպրոցական օբյեկտը ոչնչացվի, Classroom օբյեկտները նույնպես կկործանվեն: Սա կոմպոզիցիայի օրինակ է։ Այն նաև պարունակում է «has-a» հարաբերությունը և նաև ենթադրում է սեփականություն:

Ինչպիսի՞ն է կապը ագրեգացման և կազմի միջև Java-ում:

Ագրեգացիան և Կազմը ասոցիացիայի երկու տեսակ են, իսկ Կազմը ագրեգացիայի մասնագիտացված տեսակ է: Կազմը ագրեգացիայի ենթաբազմություն է։

Ո՞րն է տարբերությունը Java-ում ագրեգացման և կազմի միջև:

Aggregation vs Composition Java-ում

Ագրեգացիան երկու օբյեկտների միջև կապ է, որը նկարագրում է «ունի» հարաբերությունը: Կոմպոզիցիան ագրեգացիայի ավելի կոնկրետ տեսակ է, որը ենթադրում է սեփականություն:
Օգտագործում
Ագրեգացիան օգտագործվում է, երբ մի օբյեկտ օգտագործում է մեկ այլ օբյեկտ: Կոմպոզիցիան օգտագործվում է, երբ մեկ օբյեկտի սեփականատեր է մեկ այլ օբյեկտ:
Ազդեցություն օբյեկտների վրա
Ագրեգացիայի մեջ սեփականատեր օբյեկտի ոչնչացումը չի ազդի պարունակող օբյեկտի վրա: Կոմպոզիցիայի մեջ սեփականատեր օբյեկտի ոչնչացումը կազդի պարունակող օբյեկտի վրա:

Ամփոփում – Ագրեգացում ընդդեմ կոմպոզիցիայի Java-ում

Ագրեգացիան և Կազմը երկու հասկացություններ են OOP-ում: «Ունի-ա» հարաբերությունը նկարագրում է, որ մի օբյեկտ կարող է օգտագործել մեկ այլ օբյեկտ: Ագրեգացիան երկու օբյեկտների միջև ասոցիացիա է, որը նկարագրում է «ունի-ա» հարաբերությունը: Կազմը ագրեգացիայի ավելի կոնկրետ տեսակ է, որը ենթադրում է սեփականություն:Java-ում ագրեգացիայի և կոմպոզիցիայի միջև տարբերությունն այն է, որ եթե պարունակվող օբյեկտը կարող է գոյություն ունենալ առանց սեփականության օբյեկտի գոյության, դա ագրեգացիա է, իսկ եթե պարունակվող օբյեկտը չի կարող գոյություն ունենալ առանց սեփական օբյեկտի գոյության, դա կոմպոզիցիա է:

Խորհուրդ ենք տալիս: