Im folgenden habe ich ein Code, welcher zur Schulung dient, trotz mehrfacher Durcharbeitung des Heftes bin ich noch nicht mit der Objektorientierung warm geworden. Das heißt im folgenden Code habe wir Referenzen auf Instanzvariablen. Aber es ist oft die Rede von "Listen", nur es sind doch nur schein Listen, also Referenzen oder?
Meine Probleme liegen hauptsächlich bei den Variablen und Referenz-Variablen. Ich habe im unteren Code mal etwas kommentiert, vielleicht kann mir das jemand mal mit einfachen Worten erklären.
Meine Probleme liegen hauptsächlich bei den Variablen und Referenz-Variablen. Ich habe im unteren Code mal etwas kommentiert, vielleicht kann mir das jemand mal mit einfachen Worten erklären.
Java:
class Listenelement {
String daten;
Listenelement naechster;
}
public class lernen {
static void setDaten(String datenNeu, Listenelement element) {
element.daten = datenNeu;
element.naechster = null;
}
static void listeAnhaengen(String datenNeu, Listenelement listenAnfang) {
Listenelement hilfsKonstruktion; //warum wird hier hilfsKonstruktion den Typ Listenelement (also der Klasse) zugewiesen und dann in der nächsten Zeile
hilfsKonstruktion = listenAnfang; // die Referenz hilfsKonstruktion auf listenAnfang gesetzt?
while (hilfsKonstruktion.naechster != null) { //wie kann hilfsKonstruktion.naechster mehrere inhalte haben?
hilfsKonstruktion = hilfsKonstruktion.naechster;}//warum wird das gesetzt?
hilfsKonstruktion.naechster = new Listenelement();
hilfsKonstruktion = hilfsKonstruktion.naechster;
setDaten(datenNeu, hilfsKonstruktion);
}
static void listeAusgeben(Listenelement listenAnfang) {
Listenelement hilfsKonstruktion;
hilfsKonstruktion = listenAnfang;
System.out.println(hilfsKonstruktion.daten);
while (hilfsKonstruktion.naechster != null) {
hilfsKonstruktion = hilfsKonstruktion.naechster;
System.out.println(hilfsKonstruktion.daten);
}
}
public static void main(String[] args) {
Listenelement listenAnfang = new Listenelement();
setDaten("Element 1", listenAnfang);
for (int element = 2; element < 4; element++)
listeAnhaengen("Element " + element, listenAnfang); //hier wird jedes mal immer das startelement übergeben?
listeAusgeben(listenAnfang);
}
}