Announcement

Collapse
No announcement yet.

Erzeugen einer Klasse aus der Klassenbibliothek

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Ich würde sagen die Objekte selbst haben keine Namen.
    Sicher, konto1 und konto2
    Sobald keine Referenz, welche einen Namen haben
    Da in Java alles Referenzen sind, ist das obsolet. Nicht umsonst ergibt

    Konto a;
    a.setKontoname("www);
    eine NullpointerException. Eine Referenz die nirgendwo hinweist. Auf keine Instanz

    In dem Beispiel sieht man das dahinter dasselbe Objekte liegt, aber danach 2 verschiedene Referenzen darauf zeigen. Das instanziierte Objekt an sich hat deswegen keinen Namen.
    Und was ist der Name dann, wenn nicht der des Objektes? Das instanzierte Objekt ist konto1 und konto2 (die Referenzen), welche jeweils die gleiche Instanz haben.

    1.jpg

    Die Objekte a und b heißen so und verweisen auf die gleiche Instanz (76). Siehe Debugger-Screenshot

    Vielleicht sollten die Begrifflichkeiten abgestimmt werden:
    Objekt = Referenz auf die Instanz einer Klasse.
    Mehr gibt es in Java nicht (Statische Klassen). Was sollen die hier dauernd angeführten "Dinge ohne Referenz" sein? Wie sieht der funktionierende Code für sowas aus?

    https://de.wikipedia.org/wiki/Klasse...rientierung%29

    ... Bauplan für eine Reihe von ähnlichen Objekten.

    Klasse -> Objekt.

    Das Objekt mit dem Namen a verweist auf die ID 76.

    Sobald keine Referenz, welche einen Namen haben, darauf zeigt wird diese aus dem Speicher entfernt (das ist jetzt vermutlich etwas vereinfacht und ich kenne mich mit der Garbage Collection nicht wirklich aus, aber ich denke für das Grundverständnis verhält es sich so).
    Der GC entfernt Objekt mit Namen, deren Ziel/ID (Referenz) nicht mehr benötigt wird. Beispielsweise ein lokales Objekt, nachdem der Gültigkeitsbereich verlassen wurde
    Es geht hier auch nicht darum, wie irgendein Objekt intern verwaltet wird.
    Zuletzt editiert von Christian Marquardt; 21.06.2015, 07:12.
    Christian

    Comment


    • #17
      Originally posted by Christian Marquardt View Post
      ...Und was ist der Name dann, wenn nicht der des Objektes? Das instanzierte Objekt ist konto1 und konto2 (die Referenzen), welche jeweils die gleiche Instanz haben....
      Ich hatte etwas in Richtung C oder C++ gedacht. Dort sind das eigentlich Objekt und die Referenz darauf 2 verschiedene Sachen. Du hast hier auch ein Objekt rausgesucht und ihm implizit einen Namen gegeben (ID 76). Deswegen würde ich sagen die Referenzen haben Namen, dem instanziierten Objekt selbst kann man von aussen keinen Namen geben. Java gibt ihm aber anscheinend sehr wohl einen Namen, nämlich diese ID.

      Am Ende ist das aber Haarspalterei, wenn man nicht genau auf die interna von Java eingeht. Fürs Verständnis finde ich meine Erklärung besser, weil es sich in vielen Sprachen so verhält.

      Comment

      Working...
      X