Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz

Java4win

Aktives Mitglied
Hey,
Ich habe die im Titel genannten Begriffe oder das was dahinter steckt beim programmieren bereits verwendet, jedoch möchte ich gerne verstehen was dabei im Computer abläuft. (Ich habe schon sehr viel Recherchiert, jedoch sehr viel unterschiedliches Gelesen, was mich verunsichert hat.)

Falls etwas nicht stimmt Verbesserungen sind gerne gesehen.

Instanz und Instanzierung:

Code:
public class Main{

public static void main (String[] args){

Objekt o = new Objekt();

}
}

So weit ich das nun verstanden habe ist dies oben eine Instanzierung und eine Instanz wird dabei erstellt.
1.Frage: Ist "o" die Instanz ? Oder hat die Instanz keinen Namen?

Referenz:

An dem obigen Beispiel ist "o" ja nicht direkt die Instanz sondern verwendet lediglich eine Referenz (Referenz = Speicheradresse) die auf ein Objekt oder auf eine Instanz verweist ?

Objekte:

Eine Klasse ist der Bauplan eines Objektes. Objekte werden im Heap gespeichert. Aber wenn man nun eine Instanzierung durchführt, wird dann ein weiteres Objekt im Heap gespeichert oder eine weitere Instanz? Ist die Instanz evtl. ein Objekt mit veränderten Attributen?

Ich habe auch schon mehrmals gelesen das Instanz == Objekt(?) ist. Jedoch wurde dies auch des öfteren widersprochen...

Ich hoffe ihr könnt mir etwas weiter helfen bei meinem kleinen Verständnis Problem.

Besten Dank im Voraus!
 
Code:
new Objekt();
erzeugt eine neue Instanz der Klasse Objekt und liefert eine Referenz darauf zurück die in o gespeichert wird. Du kannst ja mal
Code:
System.out.println("Ist das eine Referenz? "+o);
ausführen.
Und "Objekt" und "Instanz" sind synonym und es fällt mir auch gerade nichts ein was da nicht stimmen sollte.
 
Zitat:
Ein Objekt (auch Instanz genannt) bezeichnet in der objektorientierten Programmierung (OOP) ein Exemplar eines bestimmten Datentyps oder einer bestimmten Klasse (auch „Objekttyp“ genannt). Objekte sind konkrete Ausprägungen („Instanzen“) eines Objekttyps und werden während der Laufzeit erzeugt (Instanziierung).
 
Ich hatte die erste deutschsprachige Beschreibung genommen die ich gefunden hatte, war aber glaube ich Wikipedia.
Gibts aber sinngemäss überall, z.B. so um auch nochmal auf Klasse einzugehen:
"Eine Klasse definiert einen neuen Typ, beschreibt die Eigenschaften der Objekte und gibt somit den Bauplan an. Jedes Objekt ist ein Exemplar (auch Instanz[90](Ich vermeide das Wort Instanz und verwende dafür durchgängig das Wort Exemplar. An die Stelle von instanziieren tritt das einfache Wort erzeugen. Instanz ist eine irreführende Übersetzung des englischen Ausdrucks »instance«.) oder Ausprägung genannt) einer Klasse."
 
Wie meinst du das ?

Tut mir leid wenn ich mich nicht deutlich ausgedrückt habe. Es gibt ja verschiedene Arten von Speicher in dem PC (Heap, Steak...)

und wenn ich nun eine Variable deklariere, in welchem Speicher wird diese nun gespeichert.

Bsp:
Java:
int i;
Objekt o = new Objekt();

Wo werden die Variablen "i" und "o" abgespeichert?

Ich hoffe man kann es jetzt etwas besser verstehen.
 
Ich vermeide das Wort Instanz und verwende dafür durchgängig das Wort Exemplar. An die Stelle von instanziieren tritt das einfache Wort erzeugen.
Das ist die eigene subjektive persönliche Meinung, anstelledessen hätte er auch schreiben können: Heute scheint die Sonne / ist das Wetter schön, findest du nicht auch? Oder anders gesagt: Ich weiß, dass Instanz (auch Objekt synonym) sowie instantiieren (hier nen bissel auf die Schreibung achten) nicht falsch ist... sondern der adäquate Begriff.

Ich aber selber immer Erstellen schreiben. 😀 Das ist für anfänger leichter zu verstehen. 😀
 

Zurück
Oben