Lernpfad:Würfelspiel in Java/Mit Objektreferenzen arbeiten: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{Navigation | {{Navigation}} | ||
== Mit Objektreferenzen arbeiten == | == Mit Objektreferenzen arbeiten == | ||
Die Kommunikation zwischen Objekten stellt eine der zentralen Konzepte der | Die Kommunikation zwischen Objekten stellt eine der zentralen Konzepte der [[wikipedia:Objektorientierte Programmierung|Objektorientierten Programmierung]] dar. Kommunikation bedeutet, dass ein Objekt Methoden eines anderen Objektes aufruft oder auf dessen Objektvariablen zugreift. | ||
[[wikipedia:Objektorientierte Programmierung|Objektorientierten Programmierung]] dar. Kommunikation | |||
bedeutet, dass ein Objekt Methoden eines anderen Objektes aufruft oder auf dessen | |||
Solche Zugriffe erfordern es also, dass das aufrufende Objekt das aufzurufende Objekt kennt. Es braucht | Solche Zugriffe erfordern es also, dass das aufrufende Objekt das aufzurufende Objekt kennt. Es braucht also einen ''Verweis'' auf das andere Objekt. Diesen Verweis nennt man eine ''Referenz''. | ||
also | |||
Objektreferenzen können auf verschiedene Weisen im aufrufenden Objekt | Objektreferenzen können auf verschiedene Weisen im aufrufenden Objekt hinterlegt sein. | ||
== Referenzen als Objektvariablen == | |||
| Zeile 32: | Zeile 28: | ||
== Referenzen als Parameter == | == Referenzen als Parameter == | ||
Manchmal soll eine Referenz nicht permanent als | Manchmal soll eine Referenz nicht permanent als Objektvariable gespeichert werden. In solchen Fällen kann die Referenz auf | ||
Objekte auch als Parameter | Objekte auch als Parameter an eine Methode übergeben werden. | ||
<syntaxhighlight lang="java" line="1"> | <syntaxhighlight lang="java" line="1"> | ||
| Zeile 47: | Zeile 43: | ||
public void motorrollerTanken( Motorroller pRoller, int pMenge ) { | public void motorrollerTanken( Motorroller pRoller, int pMenge ) { | ||
pRoller.tanken(pMenge); | pRoller.tanken(pMenge); | ||
} | |||
} | |||
</syntaxhighlight> | |||
== Referenz auf das Objekt selbst == | |||
Möchte man das aktuelle Objekt selbst (also das Objekt, dessen Methode gerade ausgeführt wird) als Referenz übergeben, benutzt man in {{Java}} das Schlüsselwort <code>this</code>. | |||
Taucht innerhalb einer Methode ein unbekannter Variablenname auf, dann geht der ''Interpreter'' automatisch davon aus, dass auf ein Attribut des aktuellen Objektes zugegriffen werden soll. Es wird also intern | |||
<code>this</code> benutzt: | |||
<syntaxhighlight lang="java" line="1"> | |||
public class Motorroller { | |||
private int tankfuellung = 0; | |||
public void tanken( int pMenge ) { | |||
// Diese Zeile bewirkt exakt dasselbe wie ... | |||
tankfuellung = tankfuellung + pMenge; | |||
// ... diese Zeile. | |||
this.tankfuellung = this.tankfuellung + pMenge; | |||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aktuelle Version vom 8. Februar 2022, 15:27 Uhr
Mit Objektreferenzen arbeiten
Die Kommunikation zwischen Objekten stellt eine der zentralen Konzepte der Objektorientierten Programmierung dar. Kommunikation bedeutet, dass ein Objekt Methoden eines anderen Objektes aufruft oder auf dessen Objektvariablen zugreift.
Solche Zugriffe erfordern es also, dass das aufrufende Objekt das aufzurufende Objekt kennt. Es braucht also einen Verweis auf das andere Objekt. Diesen Verweis nennt man eine Referenz.
Objektreferenzen können auf verschiedene Weisen im aufrufenden Objekt hinterlegt sein.
Referenzen als Objektvariablen
public class Motorroller {
public Motorroller() {
}
}
public class Besitzer {
private Motorroller meinRoller;
private Besitzer( Motorroller pRoller ) {
meinRoller = pRoller;
}
}
Referenzen als Parameter
Manchmal soll eine Referenz nicht permanent als Objektvariable gespeichert werden. In solchen Fällen kann die Referenz auf Objekte auch als Parameter an eine Methode übergeben werden.
public class Motorroller {
private int tankfuellung = 0;
public void tanken( int pMenge ) {
tankfuellung = tankfuellung + pMenge;
}
}
public class Tankstelle {
// pRoller ist eine Referenz auf ein Motorroller-Objekt
public void motorrollerTanken( Motorroller pRoller, int pMenge ) {
pRoller.tanken(pMenge);
}
}
Referenz auf das Objekt selbst
Möchte man das aktuelle Objekt selbst (also das Objekt, dessen Methode gerade ausgeführt wird) als Referenz übergeben, benutzt man in Java das Schlüsselwort this.
Taucht innerhalb einer Methode ein unbekannter Variablenname auf, dann geht der Interpreter automatisch davon aus, dass auf ein Attribut des aktuellen Objektes zugegriffen werden soll. Es wird also intern
this benutzt:
public class Motorroller {
private int tankfuellung = 0;
public void tanken( int pMenge ) {
// Diese Zeile bewirkt exakt dasselbe wie ...
tankfuellung = tankfuellung + pMenge;
// ... diese Zeile.
this.tankfuellung = this.tankfuellung + pMenge;
}
}