Java Reference
In-Depth Information
6.2.2 Referenztypen als Parameter
Es können auch Referenztypen, d. h. also auch Objekte, als Parameter übergeben wer-
den. Als Beispiel soll hier eine Methode erstellt werden, die einen Bruch mit einem als
Parameter übergebenen Bruch multipliziert. Das Ergebnis bildet die neuen Werte für
Zähler und Nenner des Objekts, dessen Multiplikationsmethode aufgerufen wurde. Die
Methode mit dem Namen multipliziere kann folgendermaßen codiert werden:
6
void multipliziere(Bruch m) {
zaehler *= m.zaehler;
nenner *= m.nenner;
}
Listing 6.4 Methode mit Referenztyp als Parameter
Sie können bereits an der Codierung der Methode erkennen, dass hier kein neues
Objekt erstellt wird, denn es wird nirgendwo der Operator new eingesetzt. Somit stellt m
nur einen Alias für das beim Aufruf verwendete Argument dar. Der folgende Pro-
grammcode nutzt die Multiplikationsmethode ( Abbildung 6.5 ).
class Bruch {
public class Bruchtest {
public static void main(String[] args) {
Bruch a = new Bruch();
a.zaehler = 3;
a.nenner = 4;
Bruch b = new Bruch();
b.zaehler = 3;
b.nenner = 12;
a.ausgeben();
a.multipliziere(b ) ;
System. out .println();
a.ausgeben();
}
}
class Bruch {
int zaehler ;
int nenner ;
int zaehler;
int nenner;
void ausgeben() {
.
.
.
void ausgeben() {
.
.
.
}
}
void multipliziere(Bruch m) {
void multipliziere(Bruch m) {
zaehler *= m. zaehler ;
nenner *= m. nenner ;
}
}
zaehler *= m.zaehler;
nenner *= m.nenner;
}
}
Abbildung 6.5 Referenztyp als Parameter
Das beim Aufruf der Methode verwendete Argument b wurde mit new erzeugt. Beim
Aufruf der Methode wird nur eine neue Referenz (ein neuer Verweis) auf das Argument
mit dem Namen m erzeugt. Das bedeutet, dass beim Zugriff auf m eigentlich immer auf
das »Original« b zugegriffen wird.
Sie sehen, dass bei der Verwendung von Referenzvariablen als Parametern keine Kopie
des Objekts, sondern lediglich eine Kopie der Referenz erstellt wird ( Abbildung 6.6 ).
 
Search WWH ::




Custom Search