Was für ein Attribut ist private Body nextNode?
public class Body extends Actor
{
private int length; // Die Länge des Körpers
private Body nextNode; // Das nächste Körpersegment
Das ist ein Teil von meinem Java Code. Mich würde interessieren was für eine Art von Attribute private Body nextNode ist. Ist das ein string oder so? Ich kann das gerade irgendwie gar nicht einordnen.
2 Antworten
Body ist der Name deiner Klasse.
Das ist eine has-a (hat eine) Beziehung.
Jede Instanz von Body hat optional einen Verweis auf eine andere Instanz von Body. Eine sogenannte verkettete Liste.
Der Wert der Membervariablen nextNode in jeder Instanz kann null sein. Das bedeutet, dass das Ende der Liste ist.
Doch, ist ein Attribut. Nur kein Skalar wie int, long, double, ..., sondern eine Klasse.
Da in Java das alles Pointer sind, kann der Wert = null sein.
Body a = new Body( 170, null );
Body b = new Body( 182, a );
Könnten die Konstruktor-Aufrufe sein.
b.nextNode ist dann = a, wenn das zweite Argument vom Konstruktor dem Attribut nextNode zugewiesen wird.
Das nextNode-Attribut ist eine Instanz der Klasse Body.
Also ist das weder ein string, noch ein int, noch ein boolean, sondern was ?
Nein, das ist eine Instanz einer Klasse, nämlich derselben. Ein Objekt einer Klasse kann also auf Objekte derselben Art (Klasse) zugreifen.
Hattest du schon Klassen? Verstehst du was eine Klasse ist?
Ah ich glaub ich hab es verstanden. Man kann damit auf die Länge des gerade bestehenden body zurückgreifen oder?
Das Ding besteht aus verschiedenen Body-Teilen, die jeweils nacheinander referenziert sind. Du kannst auf die Länge innerhalb des gleichen Body-Objekts zugreifen oder auf die Länge des nächsten Objekts, falls es einen getter zur Verfügung steht.
Danke für deine Erklärungen. Das hat mir wirklich geholfen. Danke das du dir die Zeit genommen hast mir das zu erklären!
Kein Ding, log dich doch mal bei ChatGPT ein, der kann das super erklären. Das hilft ernorm. Du kannst ChatGPT noch so blöde Fragen stellen und der erstellt auch Code.
Also ist das kein Attribut?