• Hallo,

    lerne gerade für Objektorientierte Programmierung und mir ist folgendes unklar.

    Wann sind zwei Objekte identisch bzw gleich. Kann das irgendwer gut erklären??

    Ist es so dass zwei Objeke identisch sind wenn sie die selbe adresse im speicher haben?

    also zb:

    Haus haus = new Haus();
    Haus anderesHaus = haus;

    Sind zwei Objekte gleich wenn sie den sleben zustand haben??

    Also zb

    Auto golf1 = new Auto("Golf");
    Auto golf2 = new Auto("Golf");

    mfg

  • Wann sind zwei Objekte identisch bzw gleich. Kann das irgendwer gut erklären??

    Im Skriptum zu OOP bei Puntigam ist das ohnehin sehr schön erklärt (ich weiß nicht, ob du die Java- am Complang oder die C++-Variante, die es an irgendeinem anderen Institut gibt machst): http://www.complang.tuwien.ac.at/franz/objektor…t.html#skriptum

    Ist es so dass zwei Objeke identisch sind wenn sie die selbe adresse im speicher haben?

    Ja.

    Sind zwei Objekte gleich wenn sie den sleben zustand haben??

    Ja.

  • Danke für die Antwort.

    Eine Frage hätte ich nocht.

    Ich habe noch nicht ganz verstanden was genau ein deklarierter Typ, ein statischer Typ und ein Dynamscher Typ ist. Allerdings ist das denk ich fürs weitere verständnis sehr wichtig. Aus dem Teil wo das im Skriptum steht werd ich nicht wirklich schlau.

    Ein deklarierter Typ ist nehm ich mal an wenn man explizit sowas schreibt wie Objekt o = new Objekt();

    bei den anderen hab ich keine Ahnung

    hat statischer typ irgendwas mit "static" zu tun???

  • Ich habe noch nicht ganz verstanden was genau ein deklarierter Typ, ein statischer Typ und ein Dynamscher Typ ist.


    Ich kann mich in dem Punkt nicht mehr genau an das Skriptum erinnern, aber im allg. Sprachgebrauch wird es wie folgt verwendet.

    Beispiel:

    Code
    Typ t; 
    Untertyp u; 
    t = u;


    Deklarierter bzw. statischer Typ von t ist "Typ". Dynamischer Typ von "t" ist "Untertyp".

    Es hat daher absolut nichts mit "static" zu tun.

    Dipper dipper dii dipper dii dipper dii duuu

  • Statischer typ hat afaik nichts mit static zu tun. Der statische Typ einer Variable ist jener Typ, den die Variable im fertig kompilierten Programm hat, also der zur Compilierzeit bekannt ist. Daher muss der statische Typ nicht zwangsläufig dem deklarierten Typ entsprechen. Beispiel:
    Sei der Objekttyp von U Untertyp des Objekttyps von B, und folgender Code gegeben.

    Code
    B b = new U();

    So ist U der dynamische Typ von b (in dieser Zeile), und B bei schlechten Compilern der statische Typ. Gute Compiler werden in dieser Zeile eventuell den statischen Typ U verwenden.
    Anderes Beispiel:

    Code
    B b = factorymethod(); //es ist nicht vorhersehbar, ob factorymethod eine Instanz von B oder U zurückgibt


    so ist B auf jedenfall der statische Typ der Variable.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!