004
31.10.2004, 17:41 Uhr
Bruder Leif
dances with systems (Operator)
|
Moin!
Wenn aus einem primitiven Typ ein Objekt wird, heißt das erst mal nur, daß eine Klasse instantiiert wird, die irgendwo eben einen solchen primitiven Wert speichert. Daß es jetzt ein Objekt ist, liegt daran, daß wir jetzt eine Instanz einer Klasse haben, also einen Zeiger auf den Wert, statt dem Wert an sich. Der große Vorteil: Da alle Klassen zwangsweise von "Object" abgeleitet sind, können andere Klassen bzw. deren Methoden, sofern sie Werte vom Typ "Object" annehmen können, auch mit diesen primitiven Typen umgehen, weil sie ja jetzt "verpackt" sind. Beispiel: Wir schreiben uns eine Klasse "LinkedList", die Objekte vom Typ "Object" speichern kann. Jetzt können wir damit auch Strings, Integer- und Float-Werte speichern, solange wir sie in eine Instanz der jeweiligen Wrapper-Klasse einpacken. Ganz nebenbei bieten die Wrapper-Klassen auch noch die Möglichkeit, Werte zu konvertieren oder sonstwie damit zu spielen. Der Grund, warum nicht gleich mit Objekten gearbeitet wird, ist Effizienz: Das Ein- und Auspacken inklusive der Polymorphie (alles ist ja ein "Object") kostet Zeit, und die ist knapp. Also lieber mit primitiven Typen arbeiten, und Objekte erst da, wo sie gebraucht werden... -- Mit 40 Fieber sitzt man nicht mehr vor dem PC. Man liegt im Bett. Mit dem Notebook. |