In normal terms, they both refer to member object but the survival or existence of the member object without the containing class or object or after the lifetime of the containing class or object makes the difference. Aggregation is also known as a 'has a' relationship because the containing object has a member object and the member object can survive or exist without the enclosing or containing class or can have a meaning after the lifetime of the enclosing object also.
Example ('has a'): Room has a table and the table can exist without the room. The table can have meaning without the room also.
Composition is also known as a 'is a part of' or 'is a' relationship because the member object is a part of the containing class and the member object cannot survive or exist outside the enclosing or containing class or doesnt have a meaning after the lifetime of the enclosing object. Composition is used over inheritance when different roles are to be played by a single entity. The 'is a' relation comes in this case.
Example 1 ('is a part of'): Computer Science Department is a part of the College. The Computer Science Department cannot exist without the college and the department has no meaning after the lifetime of the college.
Example 2 ('is a'): A Person is a supervisor. A Person is a husband. Supervisor and husband are the roles played by a single person. The husband role without the person has no meaning or cannot exist and similarly for the supervisor also.
From the above figure, Battery and Smart Phone explain Aggregation while the other relations explain Composition. The Smart Phone has a Battery. The Battery can exist without the Smart Phone and it has a meaning without the Smart Phone. On the other hand, the IMEI Number is a part of the Smart Phone and the existence of the IMEI number completely depends on the existence of the Smart Phone. The IMEI Number has no meaning without the Smart Phone. While the relation between IMEI Number and the Smart Phone explains the 'is a part of' type of composition, the other relation explains the 'is a' type of composition. The Smart Phone, in this case, plays roles at different times. The Smart Phone is a Camera. The Smart Phone is a Web Browser. The Smart Phone is a Music Player. The Music Player role of the Smart Phone cannot exist when the Smart Phone itself is not available.
Thus, Aggregation and Composition are almost the same conceptually but differ in implementation because, the contained or member object should be deleted in case of composition while the member object should not be deleted in case of aggregation.
110 comments:
Please correct the sentence below,
"Thus, Aggregation and Composition are almost the same conceptually implementation wise because..."
Thanks a lot for pointing the mistake. Have made the correction.
well, what is inheritence then???
If dog "is-an" animal than means class dog can be inherited from class animal.
Don't pay any attention to this document. It is really wrong and bad. "is part of" is not composition.
@Chris,
good to see some opposition.
But put on your points on what is correct and why is this wrong so that everyone can know what is right and wrong. Just a statement that it is wrong wont do..
Chris is right, this document is WRONG!
What is wrong:
"has-a" is both, aggregation and composition. The difference is not in this short two-word but in what you describe correctly about the livespan of an object.
"is-a" is always some form of inheritance, which is NEITHER an aggregation NOR a composition.
So please put this the right way.
Daniel is correct,
IS-A is some form of inheritance.
SCJP 1.6 Mock Questions
i think The Smart Phone has(not is) a Camera. The Smart Phone has(not is) a Web Browser. The Smart Phone has(not is) a Music Player.
The Article is really good for understanding the different.
It has some fundamental issues as Daniel rightly pointed our.
Please take his comments and update this blog.
Great going... keep posting!!!
maar li sab ne Antony bhai ki to......
antony kindly correct it now...
@(BHANU)
Totally agreed with Daniel et al.
+ Inheritance: "is-a" relationship
+ Composition: "has-a" relationship
+ Aggregation: "owns-a" relationship
Whilst both Composition and Aggregation implies an object "has another object" , the Aggregation has more dependency than Composition, usually that's the live-cycle/concurrent-update .
Totally agreed with Daniel et al.
+ Inheritance: "is-a" relationship
+ Composition: "has-a" relationship
+ Aggregation: "owns-a" relationship
Whilst both Composition and Aggregation implies an object "has another object" , the Aggregation has more dependency than Composition, usually that's the live-cycle/concurrent-update .
This is totally wrong.!!
Composition is 'has a' relation. That is the fundamental thing which was stated wrong.
Composition and Aggregation are hotly debated topics and for the most part there isn't much of a consensus on how to define them.
Whether or not you can accurately describe them via has-a or is-a relationships I think for the most part we can agree that the lifetime analogy serves as a good distinction between the 2.
The last statement tells the story in brief by looking at composition and aggregation in terms of life span.
Composition is quite easy to understand if we see the class is responsible for creation and destruction of the other related entity.
Anyone who is not been able to destroy the related entity upon self destruction can bring Aggregation to our mind.
a University can be seen as a composition of departments, whereas departments have an aggregation of professors.
Litte confusing - i've always been told different to this:
"is a" = inheritance (such as dog is a animal)
"has a" = composition (such as phone has a screen or has a web browser)
"uses a" = aggregation (such as phone uses batteries)
"is a" is not composition. It represents an inheritance relationship i.e. subtyping.
Is easy to understand when you think in terms of C++ language:
/* Composition */
class A
{
public:
class B
{
public:
int i;
}
x; /* "x" is a component of any instace of A */
};
void main()
{
A *a = new A();
a->x.i = 123;
delete(a); /* destroy the object referenced by "a" AND the component "x" */
}
/* Aggregation */
class B
{
public:
int i;
};
class A
{
public:
B *x; /* "x" is a reference to one object of type B */
};
void main()
{
A *a = new A();
B *b = new B();
a->x = b;
a->x->i = 0;
delete(a); /* destroy object referenced by "a" BUT NOT destroy the object referenced by "b" */
}
This is really very very informative post thank you so much keep blogging..
Mr.S S Mishra
This is really nice. Thanks for sharing this informative article.
Qtp training
This is really nice. Thanks for sharing this informative article.
hadoop training
This article is very interesting to learn.All the features are very helpful.Now i clearly know about joomla with the help of this article.
CCNA training in chennai | CCNA training chennai | CCNA course in chennai | CCNA course chennai
In a Digital world, first impressions are vital and an outstanding Software Design is the key to success. Let our team help your site make an outstanding first impression with speed and accessibility: Technology Company in India
Thank you so much for sharing... how to use lucky patcher
Your very own commitment to getting the message throughout came to be rather powerful and have consistently enabled employees just like me to arrive at their desired goals
Best Java Training Institute Chennai
My friend Suggest me this blog and I can say the best blog.Thank you so much for this.
Jira training
Nice post. I be taught one thing tougher on different blogs everyday. It can at all times be stimulating to learn content from different writers and apply a bit something from their store. I’d desire to use some with the content material on my blog whether or not you don’t mind. Natually I’ll provide you with a hyperlink on your internet blog. Thanks for sharing. online casino games
I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.
python training in chennai | python training in bangalore
python online training | python training in pune
python training in chennai
You blog post is just completely quality and informative. Many new facts and information which I have not heard about before. Keep sharing more blog posts.
java training in chennai | java training in bangalore
java online training | java training in pune
java training in chennai | java training in bangalore
Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.
java training in annanagar | java training in chennai
java training in marathahalli | java training in btm layout
java training in rajaji nagar | java training in jayanagar
Great thoughts you got there, believe I may possibly try just some of it throughout my daily life.
python training in chennai | python training in bangalore
python online training | python training in pune
python training in chennai | python training in bangalore
It would have been the happiest moment for you,I mean if we have been waiting for something to happen and when it happens we forgot all hardwork and wait for getting that happened.
Data Science with Python training in chenni
Data Science training in chennai
Data science training in velachery
Data science training in tambaram
Data Science training in OMR
Data Science training in anna nagar
Data Science training in chennai
Data science training in Bangalore
Thanks you for sharing this unique useful information content with us. Really awesome work. keep on blogging
Data Science with Python training in chenni
Data Science training in chennai
Data science training in velachery
Data science training in tambaram
Data Science training in OMR
Data Science training in anna nagar
Data Science training in chennai
Data science training in Bangalore
Wonderful article, very useful and well explanation. Your post is extremely incredible. I will refer this to my candidates...
python training in chennai
python training in Bangalore
Whoa! I’m enjoying the template/theme of this website. It’s simple, yet effective. A lot of times it’s very hard to get that “perfect balance” between superb usability and visual appeal. I must say you’ve done a very good job with this.
Best Selenium Training in Chennai | Selenium Training Institute in Chennai | Besant Technologies
Selenium Training in Bangalore | Best Selenium Training in Bangalore
AWS Training in Bangalore | Amazon Web Services Training in Bangalore
Thanks for your contribution in sharing such a useful information. Waiting for your further updates.
Selenium Training in Chennai
Best selenium training in chennai
iOS Training in Chennai
Salesforce Training in Chennai
Salesforce Training
Nice article. I was really impressed by seeing this article, it was very interesting and it is very useful for me.
Franchise Business in India
Education Franchise
Computer Education Franchise
Education Franchise India
Computer Center Franchise
Education Franchise Opportunities in India
Spoken English Franchise
Franchise in Education Sector
Awwsome informative blog ,Very good information thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.
Airport Management Courses in Chennai | Airport Management Training in Chennai | Airline Courses in Chennai | Airport Courses in Chennai | Airline and Airport Management Courses in Chennai
Great post and informative blog.it was awesome to read, thanks for sharing this great content to my vision.
Good discussion.
Hadoop Training in Chennai
Cloud computing Training
Cloud computing courses in Chennai
Cloud Training in Chennai
best institute for big data in chennai
big data classes in chennai
Excellent post! keep sharing such a post
Guest posting sites
Education
I have to thank for sharing this blog, it is really helpful and I learned a lot from your blog.
Data Science Training in Vadapalani
Data Science Training in Chennai
Data Science Course in Chennai
Data Science Course in Vadapalani
Data Science Training in Nungambakkam
Data Science Course in Tnagar
feeling so good to read your information's in the blog.
thanks for sharing your ideas with us and add more info.
Selenium Training in Ashok Nagar
Selenium Training in Nungambakkam
Selenium Training courses near me
Selenium Training in Chennai
More informative,thanks for sharing with us.
this blog makes the readers more enjoyable.keep add more info on your page.
vmware Courses in T nagar
vmware Courses in T nagar
vmware Training in Saidapet
This is a very helpful Blog for one who needs to learn in a short span of time.
TOEFL Training Institute in T-Nagar
TOEFL Coaching in T-Nagar
TOEFL Training Institute in Royapuram
TOEFL Coaching Classes near me
TOEFL Classes near Porur
TOEFL Training in Virugambakkam
TOEFL Classes in Moulivakkam
TOEFL Training in Kolapakkam
Thanks for such a great article here. I was searching for something like this for quite a long time and at last I’ve found it on your blog. It was definitely interesting for me to read about their market situation nowadays.
Java training in Bangalore |Java training in Rajaji nagar | Java training in Bangalore | Java training in Kalyan nagar
Java training in Bangalore | Java training in Kalyan nagar | Java training in Bangalore | Java training in Jaya nagar
This is good site and nice point of view.I learnt lots of useful information.
Data Science Training in Chennai | Best Data science Training in Chennai | Data Science training in anna nagar | Data science training in Chennai
Data Science training in chennai | Best Data Science training in chennai | Data science training in Bangalore | Data Science training institute in Bangalore
Data Science training in marathahalli | Data Science training in Bangalore | Data Science training in btm layout | Data Science Training in Bangalore
Nice tutorial. Thanks for sharing the valuable information. it’s really helpful. Who want to learn this blog most helpful. Keep sharing on updated tutorials…
Best Devops Training in pune==
Thanks Admin for sharing such a useful post, I hope it’s useful to many individuals for developing their skill to get good career.
online Python training | python training in chennai | Data science training in bangalore
This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.
Data Science course in rajaji nagar | Data Science with Python course in chenni
Data Science course in electronic city | Data Science course in USA
Data science course in pune | Data Science Training institute in Pune | Data science course in kalyan nagar | Data Science Course in Bangalore
Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point.
online Python training | python training in chennai
Hey Nice Blog!! Thanks For Sharing!!!Wonderful blog & good post.Its really helpful for me, waiting for a more new post. Keep Blogging!
networking training
ccna Training
Greetings. I know this is somewhat off-topic, but I was wondering if you knew where I could get a captcha plugin for my comment form? I’m using the same blog platform like yours, and I’m having difficulty finding one? Thanks a lot.
Advanced AWS Amazon Web Services Interview Questions And Answers
Best AWS Tutorial |Learn Best Amazon Web Services Tutorials |Advanced AWS Tutorial For Beginners
Best AWS Online Training | No.1 Online AWS Certification Course - Gangboard
Best AWS Training in Toronto| Advanced Amazon Web Services Training in Toronto, Canada
Really very nice blog information for this one and more technical skills are improve,i like that kind of post.
angularjs Training in bangalore
angularjs Training in bangalore
angularjs Training in chennai
automation anywhere online Training
angularjs interview questions and answers
Amazing Post. It shows your great understanding of the concept. Thanks for Sharing.
IELTS coaching in Chennai
IELTS Training in Chennai
IELTS coaching centre in Chennai
Best IELTS coaching in Chennai
IELTS classes in Chennai
Best IELTS coaching centres in Chennai
IELTS Centre in Chennai
IELTS Training
IELTS Course in Chennai
The site was so nice, I found out about a lot of great things. I like the way you make your blog posts. Keep up the good work and may you gain success in the long run.
angularjs Training in bangalore
angularjs Training in chennai
automation anywhere online Training
angularjs interview questions and answers
aws Training in indira nagar | Aws course in indira Nagar
Great blog, keep posting and update more information.
Selenium Training in Chennai
Best Selenium Training Institute in Chennai
ios developer training in chennai
Digital Marketing Training in Chennai
.Net coaching centre in chennai
Best DOT NET Training institute in Chennai
asp.net training in chennai
Big Data Training in Chennai
Great Post!..Keep Sharing
Java Training in Chennai
Python Training in Chennai
IOT Training in Chennai
Selenium Training in Chennai
Data Science Training in Chennai
FSD Training in Chennai
MEAN Stack Training in Chennai
This blog was very useful for me waiting for more updates.
Blue Prism Training in Chennai
Blue Prism Training Institute in Chennai
AWS course in Chennai
Angular 6 Training in Chennai
RPA courses in Chennai
UiPath Training in Chennai
Nice Blog. Extra-ordinary piece of work. You are an amazing writer. Thanks for sharing.
Drupal Training in Chennai
Drupal Course in Chennai
Drupal Certification Training
Html5 Training in Velachery
Html5 Training in Tambaram
Html5 Training in Chennai
Html5 Courses in Chennai
Very impressive to read the blog
Tableau training class in chennai
It was really an interesting blog, Thank you for providing unknown facts.
Aviation Courses in Chennai
Air Hostess Training Institute in Chennai
airport courses in Chennai
airport ground staff training courses in Chennai
medical coding course in Chennai
fashion technology courses in Chennai
Interior design courses in Chennai
Great post! I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
devops online training
aws online training
data science with python online training
data science online training
rpa online training
Excellant post!!!. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it.
Microsoft Azure online training
Selenium online training
Java online training
uipath online training
Python online training
Thanks for sharing Information to us. If someone wants to know about,I think this is the right place for you!
Mobile App Development in Coimbatore
Mobile app development company in atlanta
3D Animation Company
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon.
date analytics certification training courses
data science courses training
data analytics certification courses in Bangalore
ExcelR Data science courses in Bangalore
Great post about Aggregation and Composition, very nice information.
Data Science
I’m happy I located this blog! From time to time, students want to cognitive the keys of productive literary essays composing. Your first-class knowledge about this good post can become a proper basis for such people. nice one
BIG DATA COURSE MALAYSIA
Attend The Python training in bangalore From ExcelR. Practical Python training in bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Python training in bangalore.
python training in bangalore
thank uo so much , the best article of this week for me.
learn about iphone X
top 7 best washing machine
iphone XR vs XS max
Samsung a90
www.technewworld.in
We are the one of the top blue art pottery manufacturers in jaipur get contact us and get all informations in detail visit our site
blue pottery jaipur
blue pottery shop in jaipur
blue pottery manufacturers in jaipur
blue pottery market in jaipur
blue pottery work shop in jaipur
blue pottery
top blue pottery in jaipur
blue pottery wholesale in jaipur
This is the best post for developing my knowledge and Keep posting. Thank you for sharing with us...!
Spark Training in Chennai
Spark Training
Pega Training in Chennai
Primavera Training in Chennai
Unix Training in Chennai
Linux Training in Chennai
Social Media Marketing Courses in Chennai
Power BI Training in Chennai
This is a wonderful article, Given so much info in it, These type of articles keeps the users interest in the website, and keep on sharing more ... good luck.
www.technewworld.in
How to Start A blog 2019
Eid AL ADHA
Pretty blog, so many ideas in a single site, thanks for the informative article, keep updating more article.
Appium training in Coimbatore
Appium Course in coimbatore
Appium coaching in Coimbatore
AWS training in Coimbatore
RPA Training in Coimbatore
Data Analytics Courses in Coimbatore
Python Course in Coimbatore
Big Data Course in Coimbatore
Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
Best PHP Training Institute in Chennai|PHP Course in chennai
Best .Net Training Institute in Chennai
Software Testing Training in Chennai
Blue Prism Training in Chennai
Angularjs Training in Chennai
I have read your blog its very attractive and impressive. I like it your blog.Real Time Experts Training in Bangalore center address bangalore
Nice Post! Thank you for sharing very good post, it was so Nice to read and useful to improve my knowledge as updated one, keep blogging.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore
Bermuda web hosting
Botswana hosting
armenia web hosting
lithuania shared web hosting
inplant training in chennai
inplant training in chennai for it
suden web hosting
tunisia hosting
uruguay web hosting
excellent...!
internship in chennai for ece students
internships in chennai for cse students 2019
Inplant training in chennai
internship for eee students
free internship in chennai
eee internship in chennai
internship for ece students in chennai
inplant training in bangalore for cse
inplant training in bangalore
ccna training in chennai
Really nice post. Thank you for sharing amazing information.
aws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
python Training in Bangalore
aws Training in Bangalore
This is a wonderful article, Given so much info in it, Thanks for sharing. CodeGnan offers courses in new technologies and makes sure students understand the flow of work from each and every perspective in a Real-Time environmen python training in vijayawada. , data scince training in vijayawada . , java training in vijayawada. ,
Effective blog with a lot of information. I just Shared you the link below for ACTE .They really provide good level of training and Placement,I just Had Data Science Classes in ACTE , Just Check This Link You can get it more information about the Data Science course.
Java training in chennai | Java training in annanagar | Java training in omr | Java training in porur | Java training in tambaram | Java training in velachery
Thank you for sharing such a nice and interesting blog with us regarding Java. I have seen that all will say the same thing repeatedly. But in your blog, I had a chance to get some useful and unique information. I would like to suggest your blog in my dude circle.
Java training in chennai | Java training in annanagar | Java training in omr | Java training in porur | Java training in tambaram | Java training in velachery
Data Analytics Course in Pune
I like viewing web sites which comprehend the price of delivering the excellent useful resource free of charge. I truly adored reading your posting. Thank you!
Great post i must say and thanks for the information.
Data Science Course in Hyderabad
It is an informative blog. I would like to know more information about the new model bike. Anyway thanks a lot for sharing this post.
Data Science Training In Chennai | Certification | Data Science Courses in Chennai | Data Science Training In Bangalore | Certification | Data Science Courses in Bangalore | Data Science Training In Hyderabad | Certification | Data Science Courses in hyderabad | Data Science Training In Coimbatore | Certification | Data Science Courses in Coimbatore | Data Science Training | Certification | Data Science Online Training Course
Thanks for sharing such a great blog
Vermicompost manufacturers in Tamilnadu | Vermicompost in Tamilnadu
Vermicompost Manufacturers | Vermicompost Suppliers
Vermicompost in Coimbatore | Vermicompost manufacturers in Chennai
Vermicompost in chennai | Best Vermicompost in chennai
Attend The Course in Data Analytics From ExcelR. Practical Course in Data Analytics Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Course in Data Analytics.
Course in Data Analytics
You blog post is just completely quality and informative. Many new facts and information which I have not heard about before. Keep sharing more blog posts.
DevOps Training in Chennai
DevOps Course in Chennai
Impressive!Thanks for the post Tours and Travels in Madurai
It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me... Primavera Course in Chennai | primavera online training
It is amazing and wonderful to visit your site. Thanks for sharing information; this is useful to student....
SASVBA provides the best R Programming Training In Delhiusing the latest development environment and framework in Delhi. We constantly update our program to reflect the latest industry trends. SASVBA is one of the top deep learning teaching institutes at NCR in Delhi that assists students in interviewing tech giants. We educate both college students and schoolchildren.
FOR MORE INFO:
Interesting to read and useful article with detailed explanation. Thanks for sharing Angular training in Chennai
Great post! I really enjoyed reading it. Keep sharing such articles. Looking forward to learn more from you.Thanks for sharing.
Reactjs Training in Chennai |
Best Reactjs Training Institute in Chennai |
Reactjs course in Chennai
Infycle Technologies, the No.1 software training institute in Chennai offers the No.1 Data Science course in Chennai for tech professionals and students at the best offers. In addition to the Data Science course, other in-demand courses such as Python, Selenium, Oracle, Java, Python, Power BI, Digital Marketing also will be trained with 100% practical classes. After the completion of training, the trainees will be sent for placement interviews in the top MNC's. Call 7504633633 to get more info and a free demo.
Thanks for sharing on aggregation Vs Composition.
Data Science Training in Pune
Nice post. Thank you to provide us this useful information. xo jacket
Awesome blog. Thanks for sharing such a worthy information....
Angularjs Training in Bangalore
Angularjs classes in pune
Our the purpose is to share the reviews about the latest Jackets,Coats and Vests also share the related Movies,Gaming, Casual,Faux Leather and Leather materials available Cleveland Indians Jacket
This post is so interactive and informative.keep update more information...
DevOps Training in Velachery
DevOps Training in Chennai
Planet Win 365 Casino Review
All important planet win 365 information about the Planet Win 365 퍼스트카지노 Casino in 2021 and other important information about casino in rb88 2021. Rating: 4.5 · Review by Pokerlistings
I love to recommend you Where can crawl Exciting Products latest Jackets, Coats and Vests Click Here James Bond Black Jacket
This post is so interactive and informative.keep update more information...
AWS Training in Velachery
AWS Training in Chennai
I read blogs on a similar topic, but I never visited your blog. I added it to favorites and I’ll be your constant reader. Tom Holland Uncharted Leather Jacket
Very nice post thanks for sharing
Sai Satcharitra Pdf
Post a Comment