Objektattribute zugriff
-
Hallo,
Wenn ich zwei klassen habe, und in der einen Klasse(A) wird ein Objekt einer Anderen Klasse(B) gespeichert, wie komm ich denn an die attribute der Klasse A vom B objekt heraus heran?
zum beispiel ich habe eine klasse Auto und in der Klasse auto wird ein Objekt Motor erzeugt ... das Objekt motor benötigt aber den zugriff auf Klassenattribute von Auto... zum beispiel int reifenAnzahl.
oke mann könnte reinfenAnzahl static machen und dann über den klassen namen Auto darauf zugreifen... ist das die einzige möglichkeit?
-
cryps schrieb:
Wenn ich zwei klassen habe, und in der einen Klasse(A) wird ein Objekt einer Anderen Klasse(B) gespeichert, wie komm ich denn an die attribute der Klasse A vom B objekt heraus heran?
So direkt nicht. Es ginge über Zeiger oder Referenzen, aber das ist meist nicht der richtige Weg.
Das Design ist so wahrscheinlich nicht ganz durchdacht. Wenn
Bein Member vonAist, heisst das, dassABbesitzt. UndBsollte eigentlich nichts über seinen BesitzerAwissen.Hast du ein konkretes Beispiel? Vielleicht können wir dir sagen, wie du das besser lösen kannst.
-
hmm vereinfacht geht es um so ein beispiel:
ich habe eine klasse die eine Fläche repräsentiert.
die fläche hat eine höhe und eine breite.dann gibt es eine klasse Rectangle. Das 'Rechteck' soll in diese Fläche 'mittig' platziert werden. in der Klasse Rectangle sollen die maße des rechtecks errechnet werden da wäre es ganz gut wenn ich jetzt von hier aus auf die Attribute der FLäche zugreifen kann (breite und höhe von dieser).
Da könnte man die genzen sachen einfach immer als parameter mitgeben.. ich glaub das is so aber nicht ganz schön..
-
cryps schrieb:
Da könnte man die genzen sachen einfach immer als parameter mitgeben.. ich glaub das is so aber nicht ganz schön..
Immer? Das brauchst du ja nur zur Initialisierung, oder? Und ich fände das schöner als Querverweise zwischen den Klassen.
Ich würde am besten gleich in der Flächenklasse berechnen, wo das Rechteck hinkommt. Dann kannst du das Rechteck gleich mit seinen richtigen Koordinaten konstruieren, dann ist es auch ein eigenständiges Rechteck.
-
Nexus schrieb:
Das Design ist so wahrscheinlich nicht ganz durchdacht. Wenn
Bein Member vonAist, heisst das, dassABbesitzt. UndBsollte eigentlich nichts über seinen BesitzerAwissen.Was spricht dagegen? Das ist eine Form der Komposition.
-
Tachyon schrieb:
Was spricht dagegen? Das ist eine Form der Komposition.
In vielen Fällen erzeugt man so aber unnötige Abhängigkeiten. Hält man diese lokal, kann man die einzelnen Klassen mehr auf sich beschränken; sie brauchen dann auch nicht über sämtlichen anderen Member der besitzenden Klasse Bescheid zu wissen.
Aber naja, bei Designfragen gibt es sowieso fast nie eine einzig wahre Lösung - ich habe eben hingeschrieben, wie ich es machen würde.