Auswertung Ausdruck mit Punknotation + Objekt als Parameter

CodeIsland

Mitglied
Hallo!

Ich verstehe nicht recht, wie ich systematisch einen Ausdruck auswerte, der so aussieht**:

((Davor wurden in main noch die entspr. Objekte erzeugt:
A refVar1 = new A (3);
B refVar2 = new B (4);))

**System.out.println(refVar1.add(refVar2);


Die Methode add ist in beiden Klassen A und B überladen definiert. Mir geht es gerade wirklich nur um die Systematik hinter der Auswertung dieses Ausdrucks. Was passiert wann? Werte ich zuerst add(refVar2) aus und greife dann mit refVar1 über Punktnotation auf diese Werte zu?

Vielleicht kann mir auch jdm. einen Link zu diesem Thema (Punktnotation und komplexe Datentypen als Übergabeparameter) schicken?

Finde keine Erklärung die so richtig passt.

Danke!
 
Zuletzt bearbeitet:

Dompteur

Top Contributor
Heinweis: Ich habe die fehlende Klammer hinzugefügt.

Die Zeile
Java:
System.out.println(refVar1.add(refVar2));
kannst du folgendermaßen lesen:

Fangen wir mit "System.out.println" an. Das wird von links nach rechts gelesen. "System" ist eine Klasse, "out" ist eine Klassenvariable und "println" ist eine statische Methode von out.
Die methode out erwartet einen Ausdruck. Da println eine überladene Methode ist, kann der Ausdruck in der Klammer zu verschiedenen Typen ausgewertet werden.
Wichtig ist, dass du hier den Ausdruck zwischen der öffnenden und der schließenden Klammer findest.
Also in unserem Fall : "efVar1.add(refVar2)"
"efVar1" ist eine Variable und "add" eine Methode der Klasse "A". Diese Methode erwartet einen Parameter von Typ "B".
Nachdem du nun die Zeile von außen nach innen zerlegt hast, beginnst du mit der Auswertung der Ausdrücke von innen nach außen.
Also "revVar2" ist eine Variable. "refVar1.add" wird mit "refVar2" als Parameter ausgeführt.
Das Ergebnis ist nun der Wert, mit dem println aufgerufen wird.
println gibt nun einfach den Wert des Ausdrucks aus.
 

CodeIsland

Mitglied
Danke soweit! Vielleicht liegt mein Verständnisproblem dann doch auch am Kontext. Ich habe ein kleines Programm geschrieben und kann mir die Ausgabe nicht erklären. Das Verständnisproblem hängt aber mit dem Ausdruck System.out.println(fd.bewegung(d)); zusammen. Ich weiß nicht wie ich das richtig interpretiere. Hier der Code:

Java:
public class Dino {
public String fressen(){
	return "Ich bin ein Carnivore";
}

public String bewegung(Dino trex){
	return "Ich bin zu Fuß unterwegs" + " " + trex.fressen();
}

}


public class FlugDino extends Dino{
public String fressen(){
	return "Ich liebe Sushi";
}

public String bewegung(FlugDino archae){
return "Ich kann fliegen" + " " + archae.fressen();	
}
}



public class JurassicPark {
 public static void main (String [] args){
	Dino d = new Dino();
 FlugDino fd = new FlugDino();
System.out.println(fd.bewegung(d));
}
}

Ausgabe ist: Ich bin zu Fuß unterwegs Ich bin ein Carnivore
 
Zuletzt bearbeitet:

Dompteur

Top Contributor
fd.bewegung() ist in beiden Klassen implementiert.
Allerdings ist die Methode nicht überschrieben, sondern überladen.

Dino :
public String bewegung(Dino trex)

FlugDino :
public String bewegung(FlugDino archae)

Welche Methode konkret aufgerufen wird, hängt in diesem Fall vom Typ des Übergabeparameters ab.

Hier wird die Methode aus der Klasse Dino aufgerufen, da nur diese einen Parameter vom Typ Dino erlaubt. Also erfolgt die Ausgabe : "Ich bin zu Fuß unterwegs" + " " + trex.fressen();

Leichter ist die Bestimmung was für fressen aufgerufen wird. Da dies auf einem Dino Objekt aufgerufen wird, wird der Text "Ich bin ein Carnivore" ausgegeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Erste Schritte Warum misslingt die Auswertung des ersten Aufrufparameters? Java Basics - Anfänger-Themen 4
topi Parentabfrage, danach "if"-Auswertung Java Basics - Anfänger-Themen 3
T Operatoren Seiteneffekte bei Auswertung von Ausdrücken Java Basics - Anfänger-Themen 9
D Erste Schritte Weblog-Auswertung Java Basics - Anfänger-Themen 252
D statistische Auswertung Java Basics - Anfänger-Themen 1
S JTextfield Auswertung mit FocusListener Java Basics - Anfänger-Themen 7
L Problem mit Auswertung von String mit if Java Basics - Anfänger-Themen 10
T Log-Datei Auswertung Java Basics - Anfänger-Themen 7
B [Javadoc] Tutorial für die Auswertung des docs Java Basics - Anfänger-Themen 15
W Datentypen Auswertung von Ausdrücken (Teil 1) Java Basics - Anfänger-Themen 7
N auswertung von bildern Java Basics - Anfänger-Themen 14
C Denkanstoss für meine Auswertung Java Basics - Anfänger-Themen 5
C Auswertung Java Basics - Anfänger-Themen 5
B Auswertung eines Ausdrucks Java Basics - Anfänger-Themen 10
M seltsames Phänomen in der Auswertung boolscher Variablen Java Basics - Anfänger-Themen 7
V Grafische Auswertung (Ampel-System) Java Basics - Anfänger-Themen 12
M zahlenimport und auswertung Java Basics - Anfänger-Themen 5
W Reguläre Ausdruck Java Basics - Anfänger-Themen 6
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
KogoroMori21 Boolscher Ausdruck Java Basics - Anfänger-Themen 15
C Ausdruck Java Basics - Anfänger-Themen 4
E Boolescher Ausdruck Java Basics - Anfänger-Themen 1
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
G Warum ist hier ein Lamda-Ausdruck möglich Java Basics - Anfänger-Themen 2
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
B Interface Java Lambda Ausdruck. Java Basics - Anfänger-Themen 11
B Regulärer Ausdruck Java Basics - Anfänger-Themen 12
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
D Regulärer Ausdruck Java Basics - Anfänger-Themen 8
K Regulären Ausdruck in Java abbilden Java Basics - Anfänger-Themen 4
B Regulärer Ausdruck Java Basics - Anfänger-Themen 3
M Lambda - Ausdruck zu Beschreibung erstellen Java Basics - Anfänger-Themen 7
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
B Boolscher Ausdruck für mich unverständlich Java Basics - Anfänger-Themen 7
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
J Frage zu bestimmtem Ausdruck Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
M Arithemtischer Ausdruck unklar Java Basics - Anfänger-Themen 2
C Regulärer Ausdruck matched nicht Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Regulären Ausdruck automatisch erstellen Java Basics - Anfänger-Themen 5
T Erste Schritte Im arithm. Ausdruck Zeichen trennen? Java Basics - Anfänger-Themen 13
D Boolescher Ausdruck - Problem Java Basics - Anfänger-Themen 6
B Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 6
M regulärer Ausdruck funktioniert nicht Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
E Hilfe bei einem Regulären Ausdruck Java Basics - Anfänger-Themen 7
X Regulärer Ausdruck für einen FileNameFilter Java Basics - Anfänger-Themen 2
S Einfaches Regulaerer Ausdruck Problem Java Basics - Anfänger-Themen 7
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
M regex-Ausdruck irgendein Buchstabe 1 mal Java Basics - Anfänger-Themen 8
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
S String nach Ausdruck durchsuchen und Folgeattribut ausgeben Java Basics - Anfänger-Themen 3
H Ausdruck vereinfachen Java Basics - Anfänger-Themen 8
J Datentypen String splitten ohne festen Ausdruck Java Basics - Anfänger-Themen 8
H while schleife ohne ausdruck Java Basics - Anfänger-Themen 7
H Datei durchsuchen mit Regex-Ausdruck Java Basics - Anfänger-Themen 14
O Gibt es dafür einen regulären Ausdruck? Java Basics - Anfänger-Themen 9
B regulärer Ausdruck mit Metazeichen Java Basics - Anfänger-Themen 4
O RegEx-Ausdruck gesucht Java Basics - Anfänger-Themen 2
C bedingten ausdruck zu if-anweisung Java Basics - Anfänger-Themen 3
D regulärer Ausdruck: ^ $ Java Basics - Anfänger-Themen 6
O Mal wieder ein Regex-Ausdruck gesucht! Java Basics - Anfänger-Themen 5
F Regulärer Ausdruck warum false ? Java Basics - Anfänger-Themen 3
O Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 2
S Regulärer Ausdruck - alles was keine Zahl ist entfernen Java Basics - Anfänger-Themen 2
S regulärer ausdruck zum zählen eines wortes Java Basics - Anfänger-Themen 4
K Regulärer Ausdruck Java Basics - Anfänger-Themen 7
R Regulären Ausdruck geht nicht Java Basics - Anfänger-Themen 2
L Regulärer Ausdruck Java Basics - Anfänger-Themen 2
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
M regulärer Ausdruck Java Basics - Anfänger-Themen 3
T Wie sieht ein '.' im regulären Ausdruck aus? Java Basics - Anfänger-Themen 2
G Wie erstellt man komplexen regulären Ausdruck Java Basics - Anfänger-Themen 5
G Boolscher Ausdruck Java Basics - Anfänger-Themen 11
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
G Substrings in regulärem Ausdruck Java Basics - Anfänger-Themen 2
F Boolescher Ausdruck (String) in boolean konvertieren Java Basics - Anfänger-Themen 5
F Der "super" Ausdruck Java Basics - Anfänger-Themen 4
S Ausdruck zur Laufzeit auswerten Java Basics - Anfänger-Themen 10
G Was zum Teufel ist denn so ein Ausdruck"variabel : vari Java Basics - Anfänger-Themen 8
X Regulärer Ausdruck Java Basics - Anfänger-Themen 6
E regulärer Ausdruck -> wo ist der Fehler Java Basics - Anfänger-Themen 9
G regulärer Ausdruck alles was zwischen ' ' steht Java Basics - Anfänger-Themen 4
P Zeile als regulärer Ausdruck Java Basics - Anfänger-Themen 5
G Regulärer Ausdruck: gefunden und gleichzeitig nicht gefunden Java Basics - Anfänger-Themen 5
M Scanner soll nach einem Ausdruck splitten Java Basics - Anfänger-Themen 2
R Ausdruck Java Basics - Anfänger-Themen 2
M regulärer Ausdruck zum Parsen einer E-Mail Signatur Java Basics - Anfänger-Themen 16
T Regulärer Ausdruck Java Basics - Anfänger-Themen 4
J Was sagt mir dieser Ausdruck? Java Basics - Anfänger-Themen 9
G regulärer ausdruck zur überprüfung von ip-adresse? Java Basics - Anfänger-Themen 13
S Ausdruck? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben