Andiii Geschrieben 17. Oktober 2009 Geschrieben 17. Oktober 2009 Hallo Leute, Ich habe folgendes Problem in einem Projekt mit BlueJ: In meinem Projekt geht es darum, dass es eine Klasse Obstkette gibt und eine Klasse Schale. Später wenn man eine Obstkette angelegt hat, sollen darin Schalen gespeichert werden, wobei jeweils jeder Nachfolger der Schale mithilfe von Knoten gespeichert werden soll. Dann soll man die Möglichkeit haben eine Schale unten wegzunehmen. Das mache ich , mithilfe der Methode in der Klasse Obstkette: Wobei anzumerken ist, dass "Decke" die erste Schale, also ganz oben an der Decke ist. public void untenwegnehmen() { if (anzahlschalen > 0) { Schale letzteSchale = Decke; while(letzteSchale.naechsteSchalegeben() != null) { letzteSchale = letzteSchale.naechsteSchalegeben(); } letzteSchale.Obstart = null; letzteSchale = null; letzteSchale = Decke; while(letzteSchale.naechsteSchalegeben() != null) { letzteSchale = letzteSchale.naechsteSchalegeben(); } letzteSchale.naechsteSchalesetzen(null); letzteSchale.nachfolger =null; anzahlschalen--; Länge = Länge - 50; } die Methoden naechsteSchalegeben und naechsteSchalesetzen sind folgendermaßen in der Klasse Schale definiert: public Schale naechsteSchalegeben() { return nachfolger; } public void naechsteSchalesetzen (Schale s) { nachfolger = s; } Jetzt zu meinem Problem: Wenn ich die Methode untenwegnehmen ausführe wird zwar die letzte Schale null gesetzt, aber die Verknüpfung der vorletzten Schale auf die letzte Schale existiert immernoch, obwohl diese Verknüpfung ja eigentlich null gesetzt werden sollte. Kann mir jemand vielleicht einen Hinweis geben oder den Quelltext so umschreiben, dass es geht? Wenn jemand noch zusätzliche Infos zum Projekt oder die anderen Methoden benötigt, einfach nur Fragen. Danke schonmal, Andiii Zitieren
flashpixx Geschrieben 18. Oktober 2009 Geschrieben 18. Oktober 2009 Wenn ich die Methode untenwegnehmen ausführe wird zwar die letzte Schale null gesetzt, aber die Verknüpfung der vorletzten Schale auf die letzte Schale existiert immernoch, obwohl diese Verknüpfung ja eigentlich null gesetzt werden sollte. Natürlich Du läufst immer vollständig durch Deine Datenstruktur und veränderst nur lokale Variablen. Kann mir jemand vielleicht einen Hinweis geben oder den Quelltext so umschreiben, dass es geht? Sicherlich wird hier niemand Deine Hausaufgaben machen. Ich denke einmal, dass Du Dir eine FIFO Liste anschauen solltest: First In ? First Out ? Wikipedia Warteschlange (Datenstruktur) ? Wikipedia Ich tippe mal, dass ist es was Du implementieren sollst. Du stellst eine Schale oben auf und nimmst sie unten weg. Was zwar nach meiner Interpretation nicht wirklich sinnvoll als Beispiel ist. Ich würde ja eher darauf tippen, dass Du eine LIFO Liste und damit einen Stack implementieren sollst: Last In ? First Out ? Wikipedia Stapelspeicher ? Wikipedia Du solltest Dir auch noch einmal überlegen was Objekte und die darin enthaltenen Eigenschaften sind und wie zu diesen der Unterschied zu lokalen Variablen besteht. Zitieren
Kutzi Geschrieben 21. Oktober 2009 Geschrieben 21. Oktober 2009 (bearbeitet) Hallo! Ich habe mal eine Frage, bin ein Neueinsteiger in Java und hab ein problem bei einer Aufgabe. Weiß einer vielleicht die Lösung? Dies ist eine Frage vom Test Frage: Für was könnte man folgende if Anweisung verwenden? if (a<8) {a=8;} elseif (a<c) {a=c} return a; sorry falsches thema * Bearbeitet 21. Oktober 2009 von Kutzi Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.