Super Klasse

archer1000

Mitglied
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?

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;
	        }
       
	}
 
G

Gast2

Gast
Du sollst dir eine eigene Exception schreiben:

Java:
public class StackException extends RuntimeException { // bzw. extends Exception wenns ne checked Exception sein soll
  [...]
}

Diese Exception kannst du dann an geeigneter Stelle werfen, bspw. wenn jemand ein Element aus dem Stack nehmen will obwohl gar kein Element drin ist.

Zu b)
Du hast viel mehr Methoden implementiert als gefordert, es reicht wenn du diese 4 Methoden nach außen hin publizierst die oben angegeben sind. Außerdem solltest du mal nach den Rückgabewerten schauen:
- String push(T obj), warum soll hier ein String zurückgegeben werden? Das macht keinen Sinn. Geeignet wäre hier void.
- String pop(), warum hier ein String? Geeignet wäre hier doch eher T, also
Code:
T pop()
 

archer1000

Mitglied
Du sollst dir eine eigene Exception schreiben:

Java:
public class StackException extends RuntimeException { // bzw. extends Exception wenns ne checked Exception sein soll
  [...]}
[/code]

Was soll in meinem Fall anstatt [...] stehen?
Etwa
Java:
System.out.println("""Fehler in Methode: X);
wenn nicht wie ist es?



Zu b)
Du hast viel mehr Methoden implementiert als gefordert, es reicht wenn du diese 4 Methoden nach außen hin publizierst die oben angegeben sind. Außerdem solltest du mal nach den Rückgabewerten schauen:
- String push(T obj), warum soll hier ein String zurückgegeben werden? Das macht keinen Sinn. Geeignet wäre hier void.
- String pop(), warum hier ein String? Geeignet wäre hier doch eher T, also
Code:
T pop()[/QUOTE]

Du Hast Recht, Die String Zürucklieferung wurde bei mir für GUI gedacht, dass auf Bildschirm entsprechende Texte auch erscheinen. Aber man kann es auch ohen Rückgabe natürlich machen. Persönlich denke ich auch, dass deine Vorschläge mehr Sinn machen. 

Was ist auch mit c)?

Danke vielmals.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
G funktionen der super-klasse von der super-klasse Java Basics - Anfänger-Themen 6
Avarion Getter von Super-Klasse funktioniert nicht Java Basics - Anfänger-Themen 10
A Super-Anweisung in abstrakter Klasse Java Basics - Anfänger-Themen 12
J abstrakte klasse und methode super Java Basics - Anfänger-Themen 2
mrStudent <? extends T> und <? super T> Java Basics - Anfänger-Themen 1
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
M Super(); Java Basics - Anfänger-Themen 1
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
N extends und super vs new object Java Basics - Anfänger-Themen 4
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
Queiser Super boolean Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B super vs. this Java Basics - Anfänger-Themen 24
M Was macht super (...)? Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
E this() / super() Java Basics - Anfänger-Themen 7
T super Java Basics - Anfänger-Themen 3
O Vererbung this innerhalb von super Java Basics - Anfänger-Themen 7
X Frage zu Sub/Super Klassen Java Basics - Anfänger-Themen 7
V Vererbung (wie) kann man eine 'super'-Methode auf ein Objekt anwenden ? Java Basics - Anfänger-Themen 6
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
E Erste Schritte Lower Bounded Wildcards <? super Integer> Java Basics - Anfänger-Themen 1
K Vererbung (super) Java Basics - Anfänger-Themen 2
C Super und Unterklassen Java Basics - Anfänger-Themen 6
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
llabusch Vererbung Super Konstruktor Java Basics - Anfänger-Themen 5
Z Super einfache Frage For-Schleife im Detail Java Basics - Anfänger-Themen 3
vandread Java Wildcards - Wann super wann extends? Java Basics - Anfänger-Themen 2
O OOP super aufruf 2 objekte? Java Basics - Anfänger-Themen 3
S super() im Konstruktor Java Basics - Anfänger-Themen 12
L Erste Schritte Super Constructor mit Array - Liste? Java Basics - Anfänger-Themen 15
A Shallow copy .super.clone() Java Basics - Anfänger-Themen 2
P Vererbung super() ohne Parameter Java Basics - Anfänger-Themen 2
D Super und Sub-Klassen Java Basics - Anfänger-Themen 2
D super.tostring Java Basics - Anfänger-Themen 8
K Überschreiben einer "super.super"-Methode Java Basics - Anfänger-Themen 6
Luk10 super() und this Java Basics - Anfänger-Themen 7
S super() aufruf ausgabe Java Basics - Anfänger-Themen 3
L Frage zu Generics: "super" Java Basics - Anfänger-Themen 16
S super.paint() Java Basics - Anfänger-Themen 4
G Vererbung, Konstruktoranweisungen VOR super() Java Basics - Anfänger-Themen 4
G Variablen initialisieren vor super() Java Basics - Anfänger-Themen 8
H Konstruktoren – super! Java Basics - Anfänger-Themen 3
A Am Buch lesen, nun brauch ich eure Hilfe um mir super() zu erklären Java Basics - Anfänger-Themen 4
J Problem mit super Java Basics - Anfänger-Themen 10
G super operator und incompatible types, simple fehler Java Basics - Anfänger-Themen 8
kulturfenster super.paintComponent(g); Java Basics - Anfänger-Themen 3
B super methode aufrufen und ergänzen? Java Basics - Anfänger-Themen 5
G Innerhalb von Runnable auf super. zugreifen? Java Basics - Anfänger-Themen 3
X this dynamisch, super statisch? Java Basics - Anfänger-Themen 3
A Frage zu super, abstracte Klassen und Kapselung Java Basics - Anfänger-Themen 3
G frage zu vererbung (super) Java Basics - Anfänger-Themen 10
G super(null) Java Basics - Anfänger-Themen 7
F Der "super" Ausdruck Java Basics - Anfänger-Themen 4
S was macht super() ? Java Basics - Anfänger-Themen 7
J Konstruktor der Oberklasse und super Java Basics - Anfänger-Themen 1
W super.methode Java Basics - Anfänger-Themen 2
G neues String Array in super() übergeben Java Basics - Anfänger-Themen 3
I call to super must be first statement in constructor Java Basics - Anfänger-Themen 3
K java syntax: wofür steht super(screen)? Java Basics - Anfänger-Themen 5
S Verwendung von Super Java Basics - Anfänger-Themen 7
P super an methode übergeben Java Basics - Anfänger-Themen 8
S supertyp steht ohne super in hierachy - eclipse Java Basics - Anfänger-Themen 4
U super-Konstruktor Aufrufen mit Object, dass Exception wirft Java Basics - Anfänger-Themen 2
I @Inject in normaler Klasse? Java Basics - Anfänger-Themen 4
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Detlef Bosau nichtstatische Innere Klasse, this Pointer. Java Basics - Anfänger-Themen 47
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Optional Klasse Java Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Klassen Typ und Intitialisierungs-Klasse, wer bestimmt was? Java Basics - Anfänger-Themen 1
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26

Ähnliche Java Themen

Neue Themen


Oben