Was bedeutet es, wenn ich eine Methode habe, die Object als Parmeter Typ hat (Java)?
Hi,
z. B. ich habe
public int methdoe(object a){}
Was soll object sein, ich weiß, dass jede Klasse von Object erbt, aber was kann ich jetzt als Parameter für a übergeben? Man soll bei der Aufgabe zwei Objekte vergleichen, aber wie soll ich beim Datentyp Object ein Objekt übergeben? Was ist damit gemeint?
2 Antworten
Wie du schon weißt, erbt jede eigene Klasse von der Klasse Object. Nun enthält die Klasse object zum Beispiel eine equals Methode, die man überschreiben kann:
public boolean equals(Object obj)
Du kannst im Prinzip jedes Objekt jeder Klasse übergeben.
Stell dir vor du hast eine Klasse Lehrer mit den Attributen vorname und nachname.
Dann kannst du innerhalb der Lehrer Klasse die equals Methode überschreiben und ein beliebiges Objekt einer beliebigen Klasse mit dem Lehrer Objekt zu vergleichen:
public class Lehrer() {
public String name;
public String nachname;
public Lehrer(name, nachname) {
this.name = name;
this.nachname = nachname;
}
public boolean equals(Object obj){
// Wenn obj auch ein Objekt der Klasse Lehrer ist
if (obj instanceof Lehrer) {
//obj nach Lehrer casten, da die Klasse Objekt nicht die Attribute name, nachname hat
Lehrer obj_L = (Lehrer) obj
// Vergleiche Vor- und Nachname und gebe das Ergebnis zurueck
return (this.name.equals(obj_L.name) && this.nachname.equals(obj_L.nachname));
}
// Wenn obj ein Objekt einer anderen Klasse ist, kann es nicht gleich sein.
return false;
}
}
Hey,
da ein Object verlangt wird, kannst du (wie du schon meintest) jedes beliebige Object übergeben. Vergleichen kannst du 2 Objekte wie folgt:
objectA.equals(objectB);
Mfg Jannick (L1nd)