kostenloser Webspace werbefrei: lima-city


Unterschied OOP SOP

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    hoshi87

    hoshi87 hat kostenlosen Webspace.

    worin liegt der unterschied zwischen objektorientiertem und struktuellorientiertem Programmieren? habe kein ahnung und w?rd mich ?ber antworten freuen
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich kenne eigentlich nur den Begriff "Prozedurales Programmieren". (PM)

    Der Unterschied zum O(bjek)O(rientem)-Paradigma:
    PM kennt Daten und Prozeduren, wobei letztere per Parameter ?bergeben oder auch global (d.h. im Aufruf nicht sichtbar) bearbeitet werden k?nnen.

    OO fasst Daten und Operationen darauf zu Objekten zusammen, vereinfacht gesprochen:
    Klassen sind structs (Datenverb?nde), die zus?tzlich Funktionen (hier Methoden genannt) haben, die nur im Umfeld dieser Klasse arbeiten.

    Bsp:
    class Account {
    double fsum; // Datenspeicher
    Account (void) { fsum = 0; } // Konstruktor, d.h. dieser Code wird bei der Initialisierung durchlaufen.
    public double add (double f) { fsum += f; }
    public double getSum () { return fSum; }
    }


    Vererbung: Eine Klasse kann sich auf eine andere Klasse beziehen, d.h sie hat alle Daten und Methoden dieser Oberklasse, definiert jedoch weitere Daten/Methoden.

    Bsp:
    class AccountAndTax : public Account {
    public getTax() { return fsum * 0.16; }
    }

    Die Klasse AccountAndTax erbt die Methode add (), getSum() und sogar den Konstruktor.

    Vorteile OO:
    Kapselung: Was zusammengeh?rt ist auch zusammen definiert. Zugriffsregeln.
    Vererbung spart viel Code ein. GUI-Programmierung w?re ohne OO ziemlich un?bersichtlich.

    mfg
    Matoba


  4. d****5

    Objektorientiert ist glaube Ich mit Buttons usw.
  5. n*****a

    ->Objektorientiert ist glaube Ich mit Buttons usw.
    HELL NO!!!! Hat damit ?berhaupt nichts zu tun. Klingt vielleicht so, is aber nicht so...
  6. Der unterschied liegt im Programm ablauf.

    Bei der Strukturieren Programierung folgt das Programm einer festen "Struktur", es f?rt immer eine Aktion nach der anderen aus.

    Bei der Opjektorientieren Programierung ist die Reihenfolge nicht festgelegt. Dort greifen Objekte aufeinander zu, und bestimmen so den Programm ablauf.
  7. n*****a

    Also um das mal im gaanz grob zu beschreiben:
    Objektorientierte Programmiersprachen, also C++, Delphi etc. st?tzen sich alle auf die vier S?ulen der OOP:
    1. Kapselung
    2. Verbergen von Daten
    3. Vererbung
    4. Polymorphie

    Ich will jetzt ungern auf alle diese Punkte eingehen, da man da sehr ins Detail gehn kann und Romane schreiben kann. Googelt doch einfach mal danach, da werdet ihr bestimmt von material erschlagen.
  8. Ich will ja nicht pingelig sein (bin es aber doch):
    1 und 2 fallen ja wohl zusammen, oder wo ist der Unterschied von Kapselung und Daten verbergen?

    und 4 (Polymorphie) ist wohl auch nur ein "Zuckerl", das nicht zwingend zu OO geh?rt. Das ist aber mit einfach Definitionssache. (oder Geschmachssache?)

    F?r Google-Ver?chter hier Kurzdefinitionen:
    Kapselung: Der Datenzugriff kann so geregelt werden, dass nur das Objekt selbst Zugriff darauf hat und damit die interne Datenhaltung jederzeit ge?ndert werden kann, ohne dass die "Au?enwelt" betroffen ist.
    Vererbung hat Matoba oben schon erkl?rt:
    Polymorphie: Eine Funktion kann mehrere "Signaturen" haben, also verschieden Parameter-Kombinationen, sie m?ssen nur unterschiedlich sein. Die Alternative (ohne Polymorphie) ist die Wahl von verschiedenen Namen.
    Bsp:
    void draw (int x, int y);
    void draw (Point *point);

    Ohne Polymorphie g?be es:
    void draw_coord (int x, int y);
    void draw_point (Pint *point);








  9. sorry, da muss ich doch widersprechen. polymorphie geh?rt absolut zur oo-programmierung. was du beschreibst, ist ?berladen von funktionen, was mit polymorphie eigentlich nichts zu tun hat.

    polymorphie bedeutet, dass ein objekt (abstrakter datentyp) unterschiedliche typen gleichzeitig annehmen kann (mehrfachvererbung). d.h. es kann mehrere oberklassen haben.
  10. Wie doch die Meinungen auseindaergehen. Und schwupps haben wir hier wieder die reinste ?Advocacy?.

    Moshi-moshi hoshi87!

    Der Unterschied zwischen prozeduraler (also ?funktionsorientierter?) und objektorientierter Programmierung liegt in der Vorgehensweise beim Verarbeiten von Daten. Der prozedurale Programmierer schreibt sich einen Batzen von Funktionen, die er benutzt um bestimmte Einzelprobleme zu l?sen. Um sich bestimmte Eigenschaften von den zu verarbeitenden Daten zu ?merken?, legt er so genannte Strukturen (C: struct, PASCAL: record, PHP: assoziatives Array, ...) an.

    Der objektorientierte Programmierer ?berlegt sich zuerst ein so genanntes Datenmodell f?r die Probleme, die er zu l?sen hat. Dieses Datenmodell bekommt bestimmte Eigenschaften zugewiesen. Um das Datenmodell-Objekt zu beeinflussen oder um Eigenschaften des Objekts zu erfahren, legt er spezielle Funktionen an. Diese nennt man Methoden des Objekts.

    Beispielsweise enth?lt ein Fenster einer grafischen Benutzerschnittstelle verschiedene Eigenschaften, wie Breite, H?he, ?Gr??e frei ver?nderbar?. Diese werden mit den Fenstermethoden, wie ?Schlie?en?, ?Vergr??ern?, ?Minimieren?, ?Maximieren? usw. beeinflusst.

    MfG
    alopex

  11. 0******a

    keuloo schrieb:
    polymorphie bedeutet, dass ein objekt (abstrakter datentyp) unterschiedliche typen gleichzeitig annehmen kann (mehrfachvererbung). d.h. es kann mehrere oberklassen haben.

    Nein. Polymorphie ist, wenn eine Funktion/Methode abh?ngig von dem ?bergeordneten Objekt oder den ?bergebenen Parametern verschiedene Versionen hat. Mehrfachvererbung ist kein Bestandteil von OOP, sondern ein "Gimmick" von C++.
    Um die Frage des Threader?ffners zu beantworten:
    Objektorientiertes Programmieren macht man mit Sprachen, die OOP ganz oder teilweise unterst?tzen (oder gar nichts anderes zulassen).
    Bei allen anderen Programmiersprachen spricht man im Gegensatz dazu von strukturiertem oder imperativem Programmieren.
  12. Sorry, wenn ich jetzt nachhake. Aber nach dieser Definition w?re mit PHP(4+) Polymorphie machbar. Habe ich das jetzt richtig verstanden?

    MfG
    alopex

    P.S.: Ich wei?, ich bin ...
  13. 0******a

    Polymorphe Funktionen gibt es in zwei Arten:
    - Klassenunabh?ngige Polymorphie (schwache Polymorphie)
    - Klasseninterne Polymorphie (echt Polymorphie)

    Die erste Art ist keine wirkliche Polymorphie im Sinne der OOP. Ein Beispiel:
    class A
    {
    function blubb();
    };

    class B
    {
    function blubb();
    };

    Das kann man in PHP nat?rlich realisieren.

    Wirkliche Polymorphie kann man in PHP nicht realisieren, weil PHP keine Typenunterscheidung bei Variablen macht. Dadurch, dass PHP das nicht macht, braucht man allerdings auch keine Polymorphie.
    ?brigens ist Polymorphie das Gleiche wie ?berladen von Funktionen/Operatoren.
  14. Hallo 0-checka!


    ?brigens ist Polymorphie das Gleiche wie ?berladen von Funktionen/Operatoren.


    Ach sooo. Sach das doch gleich. Naja, wenigstens wei?t du, wovon du sprichst, und zitierst nicht nur irgendwelche Definitionen aus Informatik-Lehrb?chern.

    Aber ob wir damit dem Threader?ffner geholfen haben?

    MdG
    alopex

    *nachtr?glich_einf?g*

    Oh Shit! Da hab ich doch glatt ?bersehen, dass der Thread schon im April 2004 er?ffnet wurde! :eek: Wieder sinnlos die Zeit mit Erkl?rungen vergeudet ...
  15. 0******a

    Nein, eigentlich nicht. Aber 1. kam deine Definition schon einer guten Erkl?rung nahe, w?hrend der Rest der Beitr?ge (inkl. meinem) eher Zusatzinformationen sind. 2. ist der Thread schon so alt, dass das eigentlich hier nur noch Infos f?r Leute sind, die sp?ter hier reinschauen.
    Wer Links hat auf Artikel/Erkl?rungen, in denen OOP einfach erkl?rt wird, darf sie posten (mit Bewertung der Erkl?rung). Ohne Bewertung ===> Beitrag wird gel?scht und Link hier reineditiert.
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!