Wie erklärt sich die Zusammensetzung des Aufrufs kreis.farbe.setbeschreibung("rot")?
Was hat es mit der Variabel farbe aufsich?
Warum kamn ich die Methode nicht einfach
mit kreis.setbeschreibung("rot") aufrufen ?
vielen Dank im voraus für die Hilfe
Eine kleine Erklärung bitte
In der Diskussion
Kommentare (3)
- Beliebt
- Neu
- Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Markus
17 August 2021, 11:45
Huhu,
danke fur die kompakte Antwort.
Ich verstehe soweit alles , nur die Sache mit dem Typ "Farbe "ist unklar.
"Farbe " ist doch die Klasse und kein Variablentyp.
int farbe , String farbe ect... ist alles o.k.
aber Farbe farbe ?
+1
Lisa
17 August 2021, 12:06nützlich
Bei Objekten ist das analog zu primitiven Variablen. Nur hast du bei Objekten eben eine Referenzvariable die die Adresse speichert an der das eigentliche Objekt zu finden ist und nicht den eigentlichen 'Wert'. Die Adresse ist also quasi der Wert der Referenzvariablen. Und diese Referenzvariable hat einen Typ, der ihr sagt, auf welche Objekte sie zeigen kann. Dieser Typ wiederum muß dann letztendlich auch mit der referenzierten Klasse übereinstimmen. Ansonsten bekommst du einen Hinweis vom Compiler: incompatible types
Nochmal in kurz:
Farbe farbe;
deklariert eine Referenzvariable die auf Farbe Objekte zeigen kann. Mit:
farbe = new Farbe();
weist du der Referenzvariblen einen Wert zu, also eine Adresse zu dem eben erstellten Farbe Objekt. Anhand der Refernzvariablen weißt du jetzt also schon, was sich dahinter verbirgt... na, juhu, ein Farbe Objekt. Hätte die Referenzvariable keinen Typ... tja, dann wäre es mit der berühmten Typsicherheit von Java nicht weit her. Dann könnte sich hinter der Referenz alles verbergen und du müßtest bei jedem tatsächlichen Zugriff prüfen, was du da überhaupt hast.
+1
Lisa
17 August 2021, 06:58
Markus, in diesem Task arbeitest du mit zwei Klassen, Kreis und Farbe. In der Kreis Klasse ist eine Feld des Typs Farbe mit dem Bezeichner farbe definiert.
Wenn du also ein Kreisobjekt erstellst, kannst du auf das Farbfeld (eine Referenzvariable) in Kreis fogendermaßen zugreifen (von der main Methode aus gesehen).
kreis.farbe referenziert also nun ein Objekt vom Typ Farbe.
Gut soweit. Du kannst jetzt also von main aus auf das Farbe Feld zugreifen, das in Kreis definiert ist.
Die Klasse Farbe hat jetzt auch noch Methoden und ein Feld definiert. Wie üblich kannst du auch diese nutzen (von außerhalb, wenn sie public sind), indem du deine Referenz nimmst und mittels Punktoperator Methode oder Feld adressierst.
Die Referenz war: kreis.farbe
und somit lautet der der Zugriff auf eine der in Farbe definierten Methoden: kreis.farbe.getBeschreibung()
Dann könntest du den Rückgabewert noch z.B. speichern
Yeah, yeah... jetzt bin ich auch ein Erklärbar 😜🤪🧸
+4