Ahoj, začínám s javou a narazil jsem na vazby a bohužel se mi je nepodařilo úplně pochopit. Pokud někdo bude moct poradit, moc by mě to pomohlo.
1) Asociace
Dle toho co jsem pochopil, se asociace implementuje tak, že do každé třídy se alespoň k jednomu z atributů přiřadí odkaz na druhou třídu. Například
public class Student {
private String name;
private School school;
}
public Student(String name, School school) {
this.name = name;
this.school = school;
}
public String getSchool() {
return name;
}
public void setSchool(School school) {
this.school = school;
}
To samé by vlastně bylo ve třídě school. Pokud by to byla asociace 1:N, kde by student mohl mít více škol, tady vůbec nevím jak by měl vypadat konstruktor, setry a getry :
public class Student {
private String name;
List<School> schools;
}
public Student(String name,List<School> schools;) {
this.name = name;
this.schools = school;
}
2) Agregace a Kompozice
Z toho co jsem pobral, není agregace v Javě nic jiného, než jednosměrná asociace a to samé kompozice. Tedy že by referenční proměnná byla jen v jedné třídě a ne v druhé. A jediná věc v čem se agregace a kompozice liší je kontext a jakým pohledem na danou věc nahlížíme. Tedy například člověk<//>-orgány , člověk <>-auto.