Objektfragen

Hallo zusammen

Habe Mühe für mich die Interpretation der folgenden Zeilen zu machen. Ich führe zuerst einige Quellcode-zeilen auf:

public class LinkedList
{
private Node firstNode;
private Node lastNode;
private int size;

public int size()
{
return size;
}

public void add(Object value)
{
Node newNode = new Node(value);
if (size() == 0) {
this.firstNode = newNode;
}

public Object remove(int i)
{
if (size == 1)
{
removeNode = firstNode;
firstNode = null;
lastNode = null;
}
}

}

public class Node
{
private final Object value;
private Node nextNode;
public Node(Object value)
{
this.value = value;
}

}

Wird in der Zeile private Node firstNode; im Konstruktor der LinkedList Klasse ein neues Node Objekt erstellt, also den Konstruktor der Klasse Node aufgerufen?
Wird in der Zeile private Node lastNode; nochmals ein Node Objekt erstellt?

Was läuft aber da in der Nodeklasse danach ab. Da ist wiederum private Node nextNode;??

Wäre um Hilfe dankbar
Herzliche Grüsse
Bruno

Ein neues Objekt wird immer erst erzuegt, wenn Du den Konstruktor aufrufst also z.B.

MyObject obj = new MyObject();

Das passiert in Deinem Code aber nicht in der Deklaration.

Hallo
ja das habe ich gesehen im Code wird erst später in der Methode add ein Node Objekt angelegt. Aber mir ist einfach nicht klar was bedeuten im Konstruktor die:

private Node firstNode;
private Node lastNode;

sind dies Referenzen für ein Nodeobjekt welches später mit New erzeugt wird. Wobei ich finde sie passen auch nicht zu einem Nodeobjekt, denn Node hat im Konstruktor:
private final Object value;
private Node nextNode;
public Node(Object value)

Oder sind es Referenzen für ein neues LinkedList Objekt und erhalten einfach die Werte Null?

Hoffe auf entwirrung meiner verwirrung.
Grüsse
Bruno

ja das habe ich gesehen im Code wird erst später in der
Methode add ein Node Objekt angelegt. Aber mir ist einfach
nicht klar was bedeuten im Konstruktor die:

private Node firstNode;
private Node lastNode;

Einfach nur, daß Deine Klasse zwei prvate Felder hat vom Typ Node, mit den Namen ‚firstNode‘ und ‚lastNode‘.

sind dies Referenzen für ein Nodeobjekt welches später mit New
erzeugt wird. Wobei ich finde sie passen auch nicht zu einem
Nodeobjekt, denn Node hat im Konstruktor:
private final Object value;
private Node nextNode;
public Node(Object value)

Die passen sehr gut. Deine List ist nämlich nur einfach verkettet. Jeder Node kennt seinen Vorgänger und Nachfolger, aber nur die Liste weiß, welcher der erste bzw. der letzt in der Reihe ist, sprich, wann einmal über die ganze Liste gegangen wurde.

Oder sind es Referenzen für ein neues LinkedList Objekt und
erhalten einfach die Werte Null?

So lange sie nicht initialisiert werden, sollten sie null liefern. Darum geht es aber auch nicht. Wie Du schon sagtest, mußt Du Variablen, die einer Klasse zur Verfügung stehen referenzieren können. Genau das passiert in der Felddeklaration einer Klasse.