FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

wann brauch ich denn nen objekt und wann nicht

wann brauch ich denn nen objekt und wann nicht 2004-08-11 15:12
Anonymer User
hallo..
ja..ich muss zu meiner schande gestehen, ich habe die P2 übung leider nicht erfolgreich bestanden.
jetzt in den "ferien" versuche ich mich selbst mit java vertrautzumachen, damits beim nächsten mal besser klappt :D

ich stoße schon am anfang auf ein größeres problem.
Ich weiss leider nicht, wann ich ein neues objekt erzeugen muss, wann nicht. reicht es nicht 1 objekt zu erzeugen und damit dann "rumzuwurschteln"??

Wär supernett wenn mir jmd weiterhelfen könnte
Danke!

Re: wann brauch ich denn nen objekt und wann nicht 2004-08-11 15:29
Felix
Wie machst du dich denn mit Java vertraut?
Die Frage klingt jedenfalls so als müsstest du dich auf jeden Fall mit einem Einstiegsbuch, in dem auch OO-Programmierung behandelt wird, auseinandersetzen!
Allgemein ist deine Frage jedenfalls nicht so leicht zu beantworten, denn "wie viele" Objekte man benötigt hängt natürlich ganz von deinem Programm ab.
Angenommen du schreibst ein Programm das den GGT von 2 Zahlen ausrechnen soll und das wars , dann musst du dafür wohl gar kein Objekt selber erzeugen - wenn du aber z.B. eine Jukebox programmieren möchtest die objektorientiert aufgebaut ist wirst du unter Umständen für jedes einzelne Lied ein eigenes Objekt der Klasse Lied erzeugen. Ein einzelnes Objekt Lied würde hier nicht viel Sinn ergeben..
Im Endeffekt geht es halt um eine bestimmte Art der Modellierung, deshalb ist eine Einführung in die Objektorientierung "an sich", also unabhängig von Java, wichtig um solche Sachen entscheiden zu können.

Re: wann brauch ich denn nen objekt und wann nicht 2004-08-11 15:43
Anonymer User
hm..
wirklich weiter bringt mich das nicht…

Re: wann brauch ich denn nen objekt und wann nicht 2004-08-11 15:47
Felix
wirklich weiter bringt mich das nicht…
dann weiss ich leider nicht was dich weiter bringen würde, der Tipp sollte sein: "Besorg dir Literatur zum Thema Objektorientierung, das kann man nicht in 2 Sätzen abhandeln".
Ich hätte natürlich auch einfach schreiben können "es gibt keine pauschale Antwort auf deine Frage, sorry"


Re: wann brauch ich denn nen objekt und wann nicht 2004-08-11 17:53
Tweety
Da hier wohl noch große Defizite im Bereich der Ojektorientierung zu liegen scheinen, würde ich folgendes Buch empfelen:

http://3773.rapidforum.com/topic=108482821247

Wie mein Vorredner schon sagt, über Objektorientierung füllt man Bücher und kann es nur schwer kurz erklären.

Re: wann brauch ich denn nen objekt und wann nicht 2004-08-11 21:28
MoKrates
Ich habe OOP durch einen recht einfachen Ansatz fuer mich nutzbar bekommen:

Ich programmierte viel C, und es gibt viele Funktionsgruppen, die auf gleichen Datentypen arbyten:

zB. FILE *fopen(), fclose(FILE *), feof(FILE *), fputc(int c, FILE *), fgetc(FILE *), usw.

Die Idee ist nun, dass Du diesen Funktionen einen eigenen Namespace verpasst (1. Vorteil von OOP: Vermeidung von "Namespacecluttering"). Das macht man in Form einer Klasse. Klasse Datei -> file = new file(), file.close(), file.eof(), file.fputc() etc.
Das "Objekt" ist nun eine Datenstruktur, die die Daten haelt, die vorher ueber FILE * erreichbar waren. Der FILE * Parameter wird ueberall durch die Verwendung des Objekts ersetzt.

Solche Funktionsgruppen gibt es uebrigen ueberaus haeufig: Denk an: Netzwerk (socket(), listen(), recv(), send(), select(), etc), GUIs (Fenster oeffnen, schliessen, Eigenschaften setzen, Eigenschaften auslesen…), regulaere Ausdruecke (mach mal "man 3 regex"), etc.

Ein weiterer Vorteil ist die Vererbung (und die damit einhergehende Polymorphie).
Ich hab mal ein Programm von 10.000 Zeilen geschrieben, dass viel auf Dateien arbytete. Die Dateien waren schlecht organisiert und wurden dadurch riesengross. Anstatt sie ordentlicher zu organisieren baute ich einfach einen Kompressionsalgorithmus in das Programm ein.
Das Problem war nun, das ganze Programm durchzugehen, und ueberall, wo aus einer Datei gelesen wurde, musste ich "lesen und entkomprimieren" hinschreiben. Beim Datei-Schreiben entsprechend.

Wenn ich den Kompressionsalgorithmus in eine Klasse baue, das dasselbe Interface hat, wie eine einfache Datei, so muss ich nur zusehen, dass, wenn die Dateien geoeffnet werden, der Datentyp "Komprimierte Datei" anstelle von "Datei" genommen wird. fertig. Viel einfacher…

MoKrates

Re: wann brauch ich denn nen objekt und wann nicht 2004-08-11 23:31
Brokkoli
http://www.galileocomputing.de/openbook/javainsel/index.htm

ein schönes buch dazu und man kann eben alles gleich ausprobieren (ausprobieren hilft mir immer am meisten, das geht natürlich nicht jedem so..)

Re: wann brauch ich denn nen objekt und wann nicht 2004-08-12 02:37
Buck Naked
Ich habe die "Insel" zu Hause und finde das Buch auch ganz gut, aber unter dem Aspekt der Bedeutung von OOP finee ich es nicht sonderlich empfehlenswert. Die Beispiele sind schlecht gewaehlt und umgesetzt um jemanden OOP beizubringen. Fast alle Methoden werden anfangs als static deklariert. Finde ich nicht schoen.
Wenn man OOP nicht verstanden hat und es mit Java lernenw ill, fidne ich den "Tiger" um einiges passender

… aber wie immer rein subjektiv :)

Re: wann brauch ich denn nen objekt und wann nicht 2004-08-12 19:56
Wolf
Die Skripte, die ich hab, erklären echt gut genug, was OOP ist und was sie erreichen will.

Anonymer User 1: Du musst ein Objekt erzeugen, wenn Du die Vorteile von OOP nutzen willst. Schau Dir mal das Bankautomaten-Beispiel in Deinem Skript an. Das sollte Dich wohl schlauer machen.