Stack / Java / Konstruktor |
| 18.01.2007, 21:04 | Auf diesen Beitrag antworten » | ||||||||||
| donvito | Stack / Java / Konstruktor Hallo, ich soll in Informatik in Java eine Klasse Stack schreiben (obwohl diese in Java bereits implementiert ist). Kann mir einer erklären, wie ich das anstelle? Sie muss ja wohl eine Variable des Typs Object enthalten, aber was muss da sonst noch rein? Mein Problem ist besonders der Konstruktor und die Variablen. Die restlichen Methoden (Anhängen, Abrufen, Löschen) sind soweit klar. Ich hoffe meine Frage ist verständlich. |
||||||||||
|
|
|||||||||||
| 18.01.2007, 21:15 | Auf diesen Beitrag antworten » | ||||||||||
| Crotaphytus | Wo genau steckt das Problem? Der Konstruktor muss ja nicht viel mehr machen als einen leeren Stack anlegen... Mach dir lieber Gedanken, wie die Datenstruktur an sich aussieht. Nur mit einer Variablen des Typs Object wirst du nämlich nicht weit kommen - dann könnte der Stack nur ein Element enthalten... Davon mal abgesehen... Programmiert ihr in Java 5? Und hast du schon was von Generics gehört? Denn wenn ja, dann kannst du dir das mit dem Object schenken...
|
||||||||||
| 19.01.2007, 01:19 | Auf diesen Beitrag antworten » | ||||||||||
| Tobias | Ein Stack ist nichts anderes als eine Last-In-First-Out Warteschlange mit den Operationen isEmpty, clear, push, pop. Die Warteschlange kann man z.B. durch eine verkettete Liste darstellen. Ich würde ebenfalls Generics benutzen. Das führt zu folgender Klassendefinition:
Man erstellt dann eine Instanz der Klasse durch z.B.
|
||||||||||
| 19.01.2007, 08:31 | Auf diesen Beitrag antworten » | ||||||||||
| donvito | wäre auch ein Array möglich, da bin ich mir nämlich wesentlich sicherer. Aber grad fällt mir ein Arrays gibts nicht mit objects, oder? |
||||||||||
| Anzeige | |||||||||||
|
|
|||||||||||
| 19.01.2007, 16:51 | Auf diesen Beitrag antworten » | ||||||||||
| Crotaphytus | Das Problem vom Array ist halt, dass du nur eine bestimmte Anzahl an Elementen im Stack haben könntest - das ist eine Einschränkung, die man möglicherweise eher nicht haben will. Du könntest dir natürlich eine Datenstruktur bauen, die intern ein Array verwendet und sobald das voll ist ein größeres Array erzeugt und die Elemente umkopiert. (Genau genommen gibts auch so ne Datenstruktur in Java bereits, nennt sich ArrayList. Aber nachdem ihr ja den Stack selber implementieren sollt, wärs wohl Beschiss, den auf der ArrayList basieren zu lassen. Also notfalls die lieber auch selber machen, wobei dann ne stinknormale verkettete Liste deutlich einfacher sein sollte...
) |
||||||||||
| 20.01.2007, 17:32 | Auf diesen Beitrag antworten » | ||||||||||
| ed209 | Hi 1. Ich würd das nicht mit Generics machen, um es nicht zu kompliziert zu machen. 2. Wie habt ihr einen Stack definiert. Über eine abstrakte Algebra? 3. Was für einen Stack soll der Konstruktor liefern? Sprich: Was soll bei x = new Stack(); rauskommen? Gruß, Peter |
||||||||||
| 20.01.2007, 18:13 | Auf diesen Beitrag antworten » | ||||||||||
| donvito |
Habs nu mit nem Vector gemacht. Die kann ich am besten. Leider gibts noch zwei Probleme, die ich ned durchschaue: Es passt ihm nicht, dass die Methode toString existiert, mit anderem Namen gehts prima. Außerdem meldet er beim debuggen einen seltsamen Fehler, NullPointerEx. in Zeile 21 und Zeile 61 (hängt zusammen). Kapiere nicht wieso das ein Problem darstellt, denn die Variable kriegt ja einen Wert zugewiesen. |
||||||||||
| 20.01.2007, 23:53 | Auf diesen Beitrag antworten » | ||||||||||
| Crotaphytus | Der Fehler bei der toString-Methode kommt von deiner unguten Angewohnheit, keine Sichtbarkeitsangaben zu machen. Dabei wird Java implizit package einsetzen. Wenn du jetzt die toString-Methode aus Object überschreibst (und genau das machst du), versuchst du damit, diese Methode (die in Object als public definiert ist) auf package einzuschränken. Das mag der Compiler nicht. Also: public davorschreiben, dann passts schon. @ed: Generics zu kompliziert? Also wenn man sie mal gesehen hat, find ich sie sehr angenehm handzuhaben. Mir kommt das sogar deutlich angenehmer vor, als überall mit Objects zu arbeiten und die dann immer casten zu müssen. Klar, wenn man die Dinger nicht kennt und sich erst einarbeiten müsst wirds komplizierter... |
||||||||||
| 21.01.2007, 00:03 | Auf diesen Beitrag antworten » | ||||||||||
| donvito | Thx, hat geklappt :-) Kennt jemand ne Möglichkeit Eclipse komplett deutsch zu machen, bei mir klappt das nur zu vielleicht 25% außerdem wäre ich dankbar für ne deutsche Anleitung zu Eclipse. Gibts dat? Hab mit dem Debugging extrem Stress |
||||||||||
| 21.01.2007, 00:48 | Auf diesen Beitrag antworten » | ||||||||||
| ed209 |
Zu Eclipse gibt es jede Menge Literatur, auch auf Deutsch. Ich hatte ein Buch von Berthold(?) Daum das ganz gut war. Vermutlich kannst du Eclipse nicht völlig umstellen, da nicht jedes Plug-In Internationalisierung unterstützt. Aber wenn du dich ernsthaft mit Informatik beschäftigen willst kommst du langfristig eh nicht um Englisch drumherum. Daher mein Tip: Lass es komplett auf Englisch. Zumal viele der Übersetzung eh hanebüchen sind. |
||||||||||
|
|
Verwandte Themen
| Die Beliebtesten » |
| Die Größten » |
| Die Neuesten » |
|

