Hallo Leute, wieder muss ich euch um etwas Hilfe bei meiner Aufgabe bitten.
Ich habe folgenden Aufgabe vorgegeben:
Aufgabe 5 (10 Punkte)
Die Datenstruktur Stack speichert Elemente nach dem LIFO (Last In First Out). Dies beudeutete, dass ein neues Element oben auf den Speicher abgelegt wird und auch nur auf das oberste Element zugegriffen werden kann. Folgende Methoden müssen zur Verfügung stehen:
push() Ein neues Element wird abgespeichert.
pop() Das oberste Element wird züruckgegeben und von Stack entfernt
get() Das oberste Element wird ausgelesen
isEmpty() Ist der Stack leer?
a) (3 Punte) Schreiben Sie eine Exceptionklasse StackException, die als Nachricht „Fehler in Methode: X“ züruckgibt, wobei X Methodenname ist.
b) (6 Punkte) Schreiben Sie einen generischen Stack, der für alle Typen offen ist und die angegebenen Mehtode implementiert. An den geeigneten Stellen soll die Exception aus a) geworfen werden.
c) (1 Punkte) Wäre folgendes erlaubt? Begründung!
Stack<? Super Integer> = new Stack <Number>()
Ich habe Teil b) soweit ich kann implementiert ohne den Teil mit Exception. a und c verstehe ich überhaupt nicht. Könnte bitte jemand diese Teile etwas näher Dummysicher erläutern? Das wär sehr nett. Danke.
Was ist bei a gemeint, was man da überhaupt machen und was ist der Sinn?
Was bedeutet diese Code Zeile?
Ich habe folgenden Aufgabe vorgegeben:
Aufgabe 5 (10 Punkte)
Die Datenstruktur Stack speichert Elemente nach dem LIFO (Last In First Out). Dies beudeutete, dass ein neues Element oben auf den Speicher abgelegt wird und auch nur auf das oberste Element zugegriffen werden kann. Folgende Methoden müssen zur Verfügung stehen:
push() Ein neues Element wird abgespeichert.
pop() Das oberste Element wird züruckgegeben und von Stack entfernt
get() Das oberste Element wird ausgelesen
isEmpty() Ist der Stack leer?
a) (3 Punte) Schreiben Sie eine Exceptionklasse StackException, die als Nachricht „Fehler in Methode: X“ züruckgibt, wobei X Methodenname ist.
b) (6 Punkte) Schreiben Sie einen generischen Stack, der für alle Typen offen ist und die angegebenen Mehtode implementiert. An den geeigneten Stellen soll die Exception aus a) geworfen werden.
c) (1 Punkte) Wäre folgendes erlaubt? Begründung!
Stack<? Super Integer> = new Stack <Number>()
Ich habe Teil b) soweit ich kann implementiert ohne den Teil mit Exception. a und c verstehe ich überhaupt nicht. Könnte bitte jemand diese Teile etwas näher Dummysicher erläutern? Das wär sehr nett. Danke.
Was ist bei a gemeint, was man da überhaupt machen und was ist der Sinn?
Was bedeutet diese Code Zeile?
Java:
import java.util.ArrayList;
public class Stack<T> {
int counter = 0;
private T Object;
ArrayList<T> memory = new ArrayList<T>();
public String push(T obj) { // Speichert ein neues Objekt
if (isFull()==false){
memory.add(obj);
counter++;
return("Der Element wurde addiert");
}
else
return("Der Speicher ist voll");
}
public String getMemory(){
if(empty()){
return "Inhalt des Speichers ist leer.";
}
else {
String n = "Inhalt der Speicher ist: ";
for (int i = counter -1; i >= 0; i--){
System.out.println();
//Ich will hier Zeilenumbruch einbauen, geht es mit leichteren Methode?
n = n + memory.get(i) + ", ";
}
return n;
}
}
public T top() { // Gibt das oberste Objekt wieder
return memory.get(counter - 1);
}
public boolean empty() { // Prüft, ob der Stapel leer ist
return counter == 0;
}
public String pop() { // Entfernt das oberste Objekt aus dem Stapel
if (empty()==true){
return "Kein Element kann gelöscht werden";
}
else {
memory.remove(counter - 1);
counter--;
return "Der Element wurde gelöscht";
}
}
boolean isFull(){
if (counter >= 10){
return true;
}
else
return false;
}
}