Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Einfache Datentypen, Objekte und Wrapperklassen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
31.10.2004, 12:02 Uhr
Sloth



Irgendwie versteh ich die Dokus im Inet nicht. Was sind primitive Datentypen?
Sind das: char, int, short, byte, long, int?
Was unterscheidet zum Beispiel einen String der mit String str = "test"; gemacht wurde, von einem der über String str1 = new String(str);
gemacht worden ist? Und wozu benutzt man Wapperklassen, was machen sie und wann benutzt man sie?
Seh ich das richtig, das der Haupt unterschied ist, das Variablen, die mit einer Wrapperklasse erzeugt worden sind nicht mehr verändert werden können und es für die klassen mehr möglichkeiten gibt Variablen in andere Datentypen zu änder? Also wo ist der unterschied zwischen einem Einfachen Datentyp und einem Objekt vom gleichen typ? Wann nimmt man einen einfachen Datentyp und wann nimmt man ein Objekt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.10.2004, 13:34 Uhr
typecast
aka loddab
(Operator)



Zitat:

Irgendwie versteh ich die Dokus im Inet nicht. Was sind primitive Datentypen?
Sind das: char, int, short, byte, long, int?



Jup


Zitat:

Was unterscheidet zum Beispiel einen String der mit String str = "test"; gemacht wurde, von einem der über String str1 = new String(str);
gemacht worden ist?



Gibt keinen. Es werden jeweils zwei Objekte der Klasse String erzeugt. String str = "test"; ist das selbe wie String str = new String("test");
Das zweite Beispiel String str1 = new String(str); erzeugt einfache eine Kopie des ersten Objekts.


Zitat:

Und wozu benutzt man Wapperklassen, was machen sie und wann benutzt man sie?




Lies mal das hier. Ist ne ganz gute Erklaerung dazu.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 31.10.2004 um 13:35 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.10.2004, 14:06 Uhr
Sloth



Danke erstmal für die Antwort.


Zitat:
Lies mal das hier. Ist ne ganz gute Erklaerung dazu.

Das Buch hab ich auf CD Nur Da frag ich mich weiter, ne Wrapperklasse kann also aus einem primitiven Datentyp ein Objekt machen, in wie fern unterscheidet wich dann dieses Objetkt von der ursprünglichen Variable. Was kann man mit ihm machen, was man mit einem Primitiven Datentyp nicht hätte machen können?

Also können Wrapperklassen zum einem aus einer "normalen" Variable ein Objekt machen und dann kann man mit ihnen auch noch zwischen verschiedenen Datentypen Umwandeln?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.10.2004, 14:48 Uhr
typecast
aka loddab
(Operator)


Ok, die urspruengliche Variable besteht nur aus ein paar (oder auch nur einem) Byte(s) im Speicher. Das Object enthaelt erst einmal den Wert (wahrscheinlich als primitiven Typ) und die Mehtoden die halt zu einem Objekt dazugehoehren.

Die Gruende dafuer, warum sich der Aufwand lohnt sind folgende:

1.) Wie du schon erkannt hast die einfache Konvertierung.
2.) Es gibt Klassen, deren Funktionen du gerne fuer deine primitiven Datentypen nutzen wuerdest, die aber Objekte verlangen. Die Wrapperklassen stellen dann diese Objekte zur verfuegung. Frag mich jetzt bitte nicht nach einem Beispiel dafuer. Ich hab das einmal gesehen (als ich mir die Wrapperklassen das erste mal angeschaut hatte), aber niemals gebraucht.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
31.10.2004, 18:30 Uhr
(un)wissender
Niveauwart


Nun ja, Wrapperklassen meinen im Prinzip nur, das eben diese Klassen die Funktionalität einer anderen Klasse/Modul/... ummanteln und auf einen andere Art zugänglich machen.
Die Java AWT-Klassen ummanteln z. B. einen Teil der Win-API (Win-JDK), um deren Funktionalität einfach in Java nutzen zu können.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.11.2004, 18:15 Uhr
Sloth



Ok, thx. Glaub das hab ich jetzt. Aber es geht direkt zur nächsten Frage. Klassen beinhalten Objekte und Objekte sind Variablen + Methoden um die Variable auszulesen oder zu verändern, richtig?

Also ich könnte eine Klasse PCs machen mit eine variablen string ip; und einer Methode getip? hab ich das richtig verstanden? Würde das ganze dann ausgeschrieben so aussehen?

class PC
{
public static void getip()
{
String ip = new String();
.....
...
.
}
}

Und kann man zu Beispiel an dem Befehl

System.out.print("");

sagen was davon die klasse ist, was das Objekt und was die Methode? Irgendwie machen wir nur Programme und haben das Theoretische nie erklärt bekommen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: