Hallo,
obwohl ich 3 C# Anfängerbücher parallel bearbeite, haben sie alles was gemeinsam: Sobald Objekte ins Spiel kommen, könnte ich weiterprogrammieren, verstehe aber den Zusammenhang nicht zwischen Erklärung und praktischer Umsetzung. Ich weiß z.B. das Objekte Instanzen einer Klasse bilden, also eine Kopie nach den Vorgaben der Klasse ist.
Tatsächlich sehe ich aber nur Klasse und Methoden wie eine prozedurale Sprache. Mich verwirrt z.B. das GetType() objektorientiert ist, aber z.B. Random(), welches auch objektorientiert ist. statt zahl.random() ein neues Objekt erwartet, obwohl zahl ja eine objekt der Klasse z.B. int ist usw.
Hat jemand gute Vorschläge eines OO-Buch / Tutorials von Urschleim an?
Hast Du Dir auch das OpenBook OO (Link links) vorgenommen? Ich kenne es nicht, aber vielleicht hilft es Dir. Jürgen
Hallo juetho,
danke für die Antwort. Dieses Buch habe ich mir schon angesehen, aber die Zielgruppe sind Leute, die mit OO schon was gemacht haben - also fortgeschritten.
Hallo hdsf,
wenn dir drei Anfängerbücher nicht geholfen haben, solltest du einem Fortgeschrittenenbuch vielleicht mal eine Chance geben.
herbivore
Ja, Herbivore, da muss ich mich wohl tatsächlich durch den OO-Kram erkämpfen. Danke schön.
OO ist schwierig. Das kenne ich. Ich habe das Programmieren auch mit Büchern gelernt. Hat bei mir so 1 Jahr gedauert, bis ich die praktische Umsetzung verstanden habe.
Aber jetzt kann ich es und brauche es auch fast überall.
Hach ja, OOP. seuftz
Eines Tages hat es bei mir klick gemacht und ich hatte den OO-Gedanken irgend wie Begriffen (also Grob). Aber ausgelernt und "perfekt" kann ich OO auch noch nach jetzt 4 Jahren, ca. 10.000 Programmierstunden, auch nicht. 😁
Hallo hdsf,
ich denke, dass OO ein Wenig mehr ist, wie nur Code in Klassen zu packen.
Schau mal in diese Diskussion, vor allem auch in meinen 2. Beitrag in dem Thread, der versucht ein praktisches OO-Beispiel zu erläutern:
Grüße
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
In meinen Augen reduziert sich letztlich der Unterschied auf: OO legt den Fokus auf das "Was", prozedural auf das "Wie". Erkenntnisse aus der Kognitionswissenschaft legen nahe, dass auch unser Gehirn die Welt in "Was"-Konzepten betrachtet. Das macht OO vermutlich dem prozeduralen Ansatz überlegen, weil es schlicht unserer "Denkmaschine" besser liegt.
Man muss aber auch sagen, dass eines der großen "Versprechen" der OOP nicht eingelöst werden konnte: Wiederverwendung. Vererbung kann höchsten "im Kleinen" Wiederverwedung befördern. Im mittleren und großen Maßstab behindert es die Wiederverwendung sogar. Daher unterstützen Komponentenmodell wie COM und Co. auch keine Vererbung. Auch die neuen service-orientierte Ansätze sind nicht OO. OO ist ein "Mikro-Konzept", also für kleinere Softwareeinheiten optimal. Schon im mittleren Maßstab muss man Konzepte wie Interfaces einsetzen, um die durch die Vererbung einhergehend Kopplung (Kopplung = Inflexibilität) zu vermeiden.