Java-Aggregation vs. Komposition
- Komposition in Java
- Aggregation in Java
- Komposition vs. Aggregation
- Arbeiten Sie mit Komposition in Java
- Arbeiten Sie mit Aggregation in Java
In Java sind Aggregation und Komposition zwei Konzepte, die eng miteinander verbunden sind. Komposition
ist eine enge Assoziation zwischen Klassen, während Aggregation eine schwache Assoziation ist.
Komposition in Java
Zusammensetzung ist, wenn ein Basisklassenobjekt ein anderes abgeleitetes Klassenobjekt besitzt und das abgeleitete Klassenobjekt nicht ohne die Basisklasse existieren kann.
Zum Beispiel wird die Konstruktion eines Menschen
mehrere Unterklassen haben: die Hand, das Bein und das Herz. Wenn ein menschliches
Objekt stirbt, hören alle seine Unterteile auf, sinnvoll zu existieren.
Aggregation in Java
Aggregation ist, wenn ein Basisklassenobjekt und sein abgeleitetes Klassenobjekt unabhängig voneinander existieren können. Wenn wir beispielsweise eine Basisklasse Spieler
konstruieren und daraus eine Klasse Team
ableiten, würde das Team noch existieren, wenn das Objekt Spieler
zerstört wird.
Auch wenn das Team
aufgelöst wird, bleibt der Spieler
weiterhin bestehen und kann einem anderen Team beitreten.
Komposition vs. Aggregation
Komposition | Anhäufung |
---|---|
PART-OF -Relation oder spezielle HAS A -Relation |
HAT A Beziehung |
Unidirektionale Abhängigkeit | Bidirektionale Abhängigkeit |
Starke Art der Assoziation | Schwache Assoziationsart |
Das Kind ist von der Elternklasse abhängig | Das Kind ist unabhängig von der Elternklasse |
Die UML-Diagrammdarstellung ist ein schwarzer Diamant | Die UML-Diagrammdarstellung ist eine weiße Raute |
Arbeiten Sie mit Komposition in Java
import java.io.*;
import java.util.*;
class Job {
private int pay;
private int id;
public int getWage() {
return pay;
}
public void setWage(int pay) {
this.pay = pay;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
class Person {
private Job job;
public Person() {
this.job = new Job();
job.setWage(650);
}
public int getWage() {
return job.getWage();
}
}
class Main {
public static void main(String[] args) {
Person person = new Person();
int salary = person.getWage();
System.out.println("The wage of the person for a job: " + salary);
}
}
Ausgang:
The wage of the person for a job: 650
Der obige Code zeigt die Zusammensetzungsbeziehung zwischen zwei Klassen an. Komposition wird als Teil-von
-Beziehungstyp klassifiziert; im obigen Fall ist Lohn
Teil eines Jobs
.
Wir haben parametrisierte Konstruktoren, Setter- und Getter-Funktionen für beide Klassen definiert.
Arbeiten Sie mit Aggregation in Java
import java.io.*;
import java.util.*;
class Bank {
private String BankName;
Bank(String name) {
BankName = name;
}
public String getBankName() {
return BankName;
}
}
class Employee {
private String EmployeeName;
Employee(String name) {
EmployeeName = name;
}
public String getEmployeeName() {
return EmployeeName;
}
}
class Main {
public static void main(String[] args) {
Bank bank = new Bank("IMF");
Employee emp = new Employee("Rob");
System.out.println(emp.getEmployeeName() + " is an employee of the " + bank.getBankName());
}
}
Ausgang:
Rob is an employee of the IMF
Der obige Code zeigt die Aggregationsbeziehung zwischen zwei Klassen an. Die Aggregation wird als Has-ein
-Beziehungstyp klassifiziert; im obigen Fall hat die bank
einen Mitarbeiter namens Rob
.
Wir haben parametrisierte Konstruktoren, Setter- und Getter-Funktionen für beide Klassen definiert.
Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.
LinkedIn