Laden...

Objektorientierung erlernen

Erstellt von hdsf vor 16 Jahren Letzter Beitrag vor 16 Jahren 4.631 Views
hdsf Themenstarter:in
89 Beiträge seit 2005
vor 16 Jahren
Objektorientierung erlernen

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?

J
3.331 Beiträge seit 2006
vor 16 Jahren

Hast Du Dir auch das OpenBook OO (Link links) vorgenommen? Ich kenne es nicht, aber vielleicht hilft es Dir. Jürgen

hdsf Themenstarter:in
89 Beiträge seit 2005
vor 16 Jahren

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.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo hdsf,

wenn dir drei Anfängerbücher nicht geholfen haben, solltest du einem Fortgeschrittenenbuch vielleicht mal eine Chance geben.

herbivore

hdsf Themenstarter:in
89 Beiträge seit 2005
vor 16 Jahren

Ja, Herbivore, da muss ich mich wohl tatsächlich durch den OO-Kram erkämpfen. Danke schön.

T
194 Beiträge seit 2006
vor 16 Jahren

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.

2.187 Beiträge seit 2005
vor 16 Jahren

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. 😁

4.506 Beiträge seit 2004
vor 16 Jahren

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:

Einführung in OOP

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

S
8.746 Beiträge seit 2005
vor 16 Jahren

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.