AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Allgemeiner Text zu OOP

Ein Thema von Luckie · begonnen am 7. Feb 2004 · letzter Beitrag vom 9. Feb 2004
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Allgemeiner Text zu OOP

  Alt 7. Feb 2004, 00:03
Hallo, ich muss euch noch mal um einen Gefallen bitten.

Zu meinem Klassen Tutorial wollte ich als Vorwort ein paar allgemeien Worte über OOP verlieren. Das habe ich bereits:
Zitat von Vorwort:
1.1. Was ist Objektorientierte Programmierung (OOP)?
OOP ist ein Programmierkonzept wie die prozedurale Programmierung. Bei der prozeduralen Programmierung ist ein Programm in Prozeduren unterteilt. Bald stellte man jedoch fest, das größere Projekte sich so kaum oder nur schwer realisieren ließen. Schnell ging die Übersicht verloren, Erweiterungen und Änderungen ließen sich nur sehr schwer realisieren. Es musste ein neues Konzept her, die Objektorientierung.

Die Objektorientierung führt nun ganz neue Programmiertechniken ein: Kapselung, verbergen von Code, Zugriff nur über definierte Schnittstellen; Vererbung, Erweiterung von bestehen den Code; Wiederverwendbarkeit, Code kann einfach in anderen Projekten wiederverwendet werden. Auf der einen Seite erfordert dies ein gesteigertes Abstraktionsvermögen des Programmierers, auf der anderen Seite entspricht ein Objekt mehr einem Objekt / Gegenstand aus der Wirklichkeit.

1.2. Was versteht man unter einem Objekt?
Ein Objekt in der OOP kann man mit einem Objekt / Gegenstand aus der Wirklichkeit gleichsetzten. Genau wie ein Gegenstand Eigenschaften hat, besitzt auch ein Objekt Eigenschaften (properties), die es beschreibt. Ein Beispiel wäre die Farbe eines Würfels oder entsprechend die Farbe einer Schaltfläche. Methoden eines Objektes werden als Prozeduren / Funktionen implementiert. Methoden dienen dazu die Eigenschaften eines Objektes zu manipulieren bzw. auf Grund der Eigenschaften eine Ausgabe zu produzieren. Im entferntesten könnte man sagen, dass ein Bleistift die Methode "Schreiben" besitzt.
Allerdings klingt mir das noch zu "unrund". ich würde jetzt mal gerne welche von euch bitten, die etwas davon verstehen, diesen Text mal etwas zu überarbeiten. Natürlich werdet ihr dann auch in der Danksagung erwähnt, welche bisher so aussieht:
Zitat von Danksagung:
An dieser Stelle will ich mich recht herzlich bei allen aus der Delphi-Praxis bedanken, die mir bei der Erarbeitung dieses
Tutorials helfend bei Seite gestanden haben haben.
Mein Dank gilt ins besondere choose für sein Beispiel zur Polymorphie, Motzi für weitere Erläuterungen und Chewies
Beitrag zu Klassenmethoden.
Natürlich darf an dieser Stelle auch nicht meine liebe Freundin Micky vergessen werden, die sich die Mühe gemacht hat,
das ganze Korrektur zu lesen, obwohl sie wahrscheinlich kein Wort von dem verstanden hat, was sie gelesen hat.
@Chewie, choose und Motzi: Wenn ihr eure Homepage genannt haben wollt, dann sagt mir bitte Bescheid und gebt mir den korrekten Link zu eurer Homepage. Gleiches gilt natürlich auch für den-/diejenigen, die sich die Mühe gemacht haben, das Vorwort zu überarbeiten.

Ich danke euch jetzt schon mal im voraus für eure Mühe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Allgemeiner Text zu OOP

  Alt 7. Feb 2004, 00:54
Hm, ich verstehe unter OOP eine Definition WIE der Programmierer zur Entwurfszeit seine Programm-Schnittstellen zu definieren hat. D.h. die OOP ist KEINE prozedurale Programmierung sondern ein Überbau der es ermöglicht strukturiert Schnittstellen zu entwerfen. Dieser Überbau muß die Fähigkeit besitzen zur Laufzeit über die verwendeten Schnittstelle Auskunft zu geben. Dadurch wird es möglich eine strenge Typprüfung und somit mehr Sicherheit in den Schnittstellen zu implementieren. Dies kann prozedurale Programmierung in der Form niemals erreichen.

Es ist also meiner Meinung nach ein Fehler die OOP mit prozeduraler Programmierung zu vergleichen !
Die Mittel OOP umzusetzen basieren teilweise auf prozeduraler Programmierung UND eben den Fähigkeiten des Compilers und dessen IDE.

Die Spitze der OOP ist immer das Klassenkonzept. Objecte selber sind nur die zur Laufzeit existenten Datenkontainer deren Schnittstellen durch das Klassenkonzept klar definiert wurden.
D.h. um OOP zu erkären muß man mit den Klassen, deren Klassen-Schnittstellen = Klassenmethoden, deren RTTI usw. anfangen. Hat man nun begriffen das ein instantiertes Object immer in Form seines Klassentypes erscheint und arbeitet so wird es leicht zu verstehen was Objecte sind.

Im Grunde arbeiten wir nicht OOP sondern COP = Class Orientated Programming zur Entwurfszeit, und OOP zur Laufzeit.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Allgemeiner Text zu OOP

  Alt 7. Feb 2004, 11:49
Puh, jetzt muss ich das nur irgendwie in eine lesbareform bekommen.

WEr noch etwas beizutragen hat, nur zu, immer her damit.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Allgemeiner Text zu OOP

  Alt 7. Feb 2004, 12:52
So, ich habe mal versucht das genze etwas in Worte zu fassen:
Zitat von Vorwort:
Die Objektorientierter Programmierung (OOP) ist im Prinzip nur eine Definition, wie der Programmierer zur Entwurfszeit seine Programmschnittstellen zu definieren hat. Die OOP basiert auf der prozeduralen Programmierung und stellt einen Überbau da, der es ermöglicht strukturierte Schnittstellen zu entwerfen. Dieser Überbau muss die Fähigkeit besitzen zur Laufzeit über die verwendeten Schnittstellen Auskunft zu geben. Dadurch wird es möglich eine strenge Typprüfung und somit mehr Sicherheit in den Schnittstellen zu implementieren. Die Mittel OOP umzusetzen basieren teilweise auf prozeduraler Programmierung und auf den Fähigkeiten des Compilers und der IDE.

Die Grundlage der OOP ist das Klassenkonzept. Objekte selber sind nur die zur Laufzeit existierenden Datencontainer deren Schnittstellen durch die Klasse klar definiert wurden.

Die Objektorientierung führt nun ganz neue Programmiertechniken ein: Kapselung, verbergen von Code, Zugriff nur über definierte Schnittstellen; Vererbung, Erweiterung von bestehen den Code; Wiederverwendbarkeit, Code kann einfach in anderen Projekten wiederverwendet werden. Auf der einen Seite erfordert dies ein gesteigertes Abstraktionsvermögen des Programmierers. Auf der anderen Seite ist eine Klasse auch der Versuch die Wirklichkeit programmiertechnisch abzubilden.
Ist aber noch etwas mager.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5

Re: Allgemeiner Text zu OOP

  Alt 9. Feb 2004, 00:36
Geht aber vom Verständniss in die richtige Richtung, meiner Meinung nach wohlgemerkt.

OOP soll also die Progammierer dazu "zwingen" strukturiert, wiederverwendbare und sicher erweiterbare Programm-Schnittstellen umzusetzen. Das dies natürlich nur in einer eh schon restriktiven und strukturierten Programmiersprache sinn macht wird dadurch auch erklärbarer. Sozusagen ist es eigentlich Dumpfsinnig OOP in C++ zu integrieren, aber das ist meine ganz eigene Meinung

Das war die Grundintention solche Konzepte zu entwickeln. Heutzutage MUSS die OOP aber mehr können, wie eben zur Laufzeit der Schnittstellen selber über die Schnittstellen Auskunft zu geben. In Delphi geschiet dies über die Typinformationen = RTTI = Run Time Type Information. Diese sind eine Erweiterung des klassischen Klassenkonzeptes.
Ein Überbau dessen sind die Interfaces. Dies stellen selber KEINE Object-Templates so wie Klassen dar, sondern reine OOP orientierte Schnittstellen Definitionen. Worauf dann zur Laufzeit Interfaces aufsetzen ist piep egal, es können Delphi oder C Klassen sein, es können aber auch nur einfache Records oder Structs sein. Dennoch sind Interfaces OOP.

Am wichtigsten dürfte es aber erstmal sein zu definieren wie der Programmierer programmiert, und WAS "Schnittstellen" im Programm eigentlich sind und DAS Schnittstellen die Basis jedes Programmes sind. Um so besser und flexibler die Schnittstellen im Program sind, um so besser lässt sich das Program warten, weiterentwickeln und supporten.

Sogesehen ist die OOP die Weiterentwicklung des "Schnittstellen" Design's von der proceduralen Programmierung hin zu Object Orientierten Schnittstellen bis hin zu Interfaces als vollständig abstrakte OOP Schnittstellen.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Allgemeiner Text zu OOP

  Alt 9. Feb 2004, 14:09
Spitze. Danke.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz