Entwickler-Ecke

Sonstiges (Delphi) - Beispiel für Objektorientierte Programmierung


gnomecoder - Fr 28.01.11 17:12
Titel: Beispiel für Objektorientierte Programmierung
Hi,
ich schreibe meine Facharbeit über Objektorientierte Programmierung und sollte das ganze möglichst an einem Beispiel klar machen, damits nicht zu trocken wird. (Facharbeit ist nur 8 - 12 Seiten lang)
Hat jemand ne Idee woran ich das verdeutlichen kann?
Der Lehrer hat die Entwicklung einer eigenen Delphi Komponente vorgeschlagen, finde ich allerdings etwas langweilig.

Freue mich über jeden Vorschlag. Danke.

Ach und wenn ich schon dabei bin... kann mir jemand gute Literatur zum Thema empfehlen?


Dude566 - Fr 28.01.11 17:21

Naja du könntest etwas aus der realen Welt versuchen abzubilden, also z.B. ein kleines Autorennen o.ä., da kann man denke ich sehr gut verschiedene Techniken der OOP Entwicklung vorstellen.

Denke nicht, dass du es noch nicht kennst aber hier mal der Link: http://www.delphi-treff.de/object-pascal/klassen-und-objekte/ ;)


Bergmann89 - Fr 28.01.11 17:42

Hey,

wie wäre es mit einem Sonnensystem, oder nem Auszug aus ner Galaxy? Da hat man genug Objekte, die man in Klassen packen könnte (Sterne, Planeten, Monde, Asteroiden, Schwarze Löcher, Alienraumschiffe^^ ).

MfG Bergmann


Tranx - Fr 28.01.11 19:10

Das Beispiel verschiedener Zeichenobjekte: Punkte, Geraden, Kreise, Rechtecke .. eignet sich ebenfalls, um die Vererbungstheorien bei Objekten zu verdeutlichen. Ich nehme nicht an, Du sollst konkrete Projekte in der Arbeit vorstellen, oder?


gnomecoder - So 30.01.11 16:46

danke für die Antworten! Ist doch schon einiges dabei.
Nein, konkrete Projekte soll ich nicht vorstellen. Vorgaben habe ich eigentlich garkeine.

Das Sonnensystem sagt mir bisher am meisten zu... bin schon ganz heiß drauf das auch noch grafisch darzustellen.
(natürlich nicht innerhalb der 12 Seiten sondern als Anhang^^)
Also danke nochmal... und falls jemandem noch was einfällt, immer her damit :)


F34r0fTh3D4rk - So 30.01.11 16:51

Beim Sonnensystem stelle ich mir Aspekte wie Vererbung ein wenig schwierig und vor allem wenig anschaulich vor. Autorennen finde ich da schon besser, da gibt es Rennstrecken, Zuschauer, Teams, Fahrer, Mechaniker, Autos, etc. Da finden sich sehr viele gute Beispiele für OOP.


gnomecoder - So 30.01.11 16:56

Dann werde ich mich wohl erst entscheiden nachdem ich mich genauer mit dem Thema auseinandergesetzt habe.
Erfahrung habe ich bisher nämlich nur wenig mit OOP.


Bergmann89 - So 30.01.11 17:18

Hey,

warum lässt sich die Vererbung da schlecht darstellen? Mal als kleines Bsp: TDrawableObject - TSpaceObject - TPlanet oder so in der Art. Und 3 Klassen reichen meiner Meinung nach um die Vererbung anschaulich darzustellen.

MfG Bergmann.


F34r0fTh3D4rk - Di 01.02.11 19:08

Für Außenstehende ist der Sinn einer solchen Abstraktion nicht sofort offensichtlich. Und wer spricht schon von "Weltraum-Objekten"? Ist eine Galaxie dann auch ein Weltraum-Objekt? Beinhaltet diese dann mehrere andere Weltraum-Objekte? Wie sind die Beziehungen der Objekte untereinander?

Bei dem Autorennen finde ich das schon offensichtlicher:


Quelltext
1:
2:
3:
4:
5:
6:
Auto
^
|- Audi
|- Porsche
|- Ferrari
|- VW


Quelltext
1:
2:
3:
4:
5:
    Team 
  ^      ^
  |      |
  v      v 
Auto <-> Fahrer


Martok - Di 01.02.11 19:31

Sonnensysteme sind da aber auch offensichtlich.

Universum hat Galaxien
Galaxien haben Sonnensysteme
Sonnesysteme haben Sonne; haben Planeten
Planeten haben Monde

Jedes davon hat eine Drehgeschwindigkeit, Gesamtmasse etc (Vererbung). Also wenn Leute da sind, die Astronomie mögen ist das eigentlich schön zu erklären.


gnomecoder - So 20.02.11 16:19

das hier ist draus geworden: http://www.delphi-forum.de/viewtopic.php?p=633034#633034
wirklich nur sehr klein und wenig code, aber ich finde das Beispiel sehr gut um OOP zu erklären.
Danke nochmal


ub60 - So 20.02.11 23:14

... und wenn Du jetzt noch Deine Klassenstruktur(en) veröffentlichen könntest, würdest Du die nächsten 20 OOP-Beispielsucher bestimmt verdammt glücklich machen :D

ub60


gnomecoder - So 20.02.11 23:30

ich weiß nicht ob ichs noch genauso lasse für die facharbeit, aber bisher siehts etwa so aus:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
                                            TGalaxie  
                                                 |
                                                 |
                                                 |
                                             TSonnensystem
                                 |        |            |
                                 |        |            |
                                 |        |            |
                            TSonne       TSterne   THimmelskörper
                                                    |       |
                                                    |       |
                                                    |       |
                                              Planeten<-->Monde


FaTaLGuiLLoTiNe - Mo 21.02.11 09:40

Bei deiner Darstellung ist mir nicht ganz klar, ob die gestrichelten Linien Vererbungen oder Assoziationen oder beides darstellen sollen.

Ich würde dir für die Facharbeit empfehlen, ein ordentliches UML-Klassendiagramm zu erstellen (z.B. mit ArgoUML). Dadurch wird die Aussage deines Modells deutlicher und die Erwähnung von UML im Zusammenhang mit objektorientierter Programmierung dürfte sicherlich keine Minuspunkte bringen, eher das Gegenteil.