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!
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.
hm..
wirklich weiter bringt mich das nicht…
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"
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=108482821247Wie mein Vorredner schon sagt, über Objektorientierung füllt man Bücher und kann es nur schwer kurz erklären.
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
http://www.galileocomputing.de/openbook/javainsel/index.htmein schönes buch dazu und man kann eben alles gleich ausprobieren (ausprobieren hilft mir immer am meisten, das geht natürlich nicht jedem so..)
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 :)
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.