dimanche 10 mai 2015
ArrayQueue mit Exceptions und Vererbung
Posted on 06:23 by verona
Hallo allerseits,
seit einiger Zeit bastle ich an einer Aufgabe herum. Ich dachte bereits, das alles funktioniert, aber nun habe ich den Code wahrscheinlich doch vermurkst, sprich ich finde den Fehler nicht.
Das füllen, leeren und Inhaltabfragen der Queue funktioniert einwandfrei.
Aber wenn die Queue voll ist (Arrayinitialgrösse überschritten), müsste in einer Subklasse ein zweites Array angelegt und die Inhalte hinein kopiert werden. Ich habe auch bereits probiert die Exception auszuklammern, ohne Erfolg.
Kann mir jemand weiterhelfen?
seit einiger Zeit bastle ich an einer Aufgabe herum. Ich dachte bereits, das alles funktioniert, aber nun habe ich den Code wahrscheinlich doch vermurkst, sprich ich finde den Fehler nicht.
Das füllen, leeren und Inhaltabfragen der Queue funktioniert einwandfrei.
Aber wenn die Queue voll ist (Arrayinitialgrösse überschritten), müsste in einer Subklasse ein zweites Array angelegt und die Inhalte hinein kopiert werden. Ich habe auch bereits probiert die Exception auszuklammern, ohne Erfolg.
Kann mir jemand weiterhelfen?
Java Code:
-
public class ArrayQueue implements Queue {
-
protected int pos = 0; // nächste Einfügeposition
-
public ArrayQueue(int size) {// Konstruktor bei dem man zusätzlich die Array-Grösse mitgibt
-
super();
-
}
-
if (pos==OA.length) throw new QueueExeption("Überlauf");//Wenn das Array voll ist, Exeption auslösen (Fehlermeldung "Überlauf")
-
OA[pos] = obj; // obj in OA aufnehmen
-
pos++; // pos erhöhen
-
}
-
if (pos==0){
-
throw new QueueExeption("Leer");
-
}
-
pos--; //Position wieder um 1 reduzieren
-
for (int i = 1; i < OA.length; i++) {
-
-
OA[i-1]=object;
-
}
-
return o;
-
-
// Nachrücken der restlichen Elemente, Aktualisieren von pos
-
}
-
protected void showArraySize() {//Zeigt die Arraygrösse an
-
}
-
-
-
return OA[0]; // noch keine Ausnahmebehandlung
-
}
-
-
return OA;
-
}
-
-
this.OA = OA;
-
}
-
-
public void clear() { // noch zu implementieren
-
pos=0;
-
-
for (int i = 0; i < OA.length; i++) { //Alle Stellen im Array durchgehen.
-
OA[i]= null; //Entsprechende Arrayposition auf 0 setzen
-
}
-
}
-
public boolean isEmpty() {//Wahr/Falsch-Wert zurückliefern, ob Array leer ist oder nicht.
-
return pos == 0;
-
}
-
}
Java Code:
-
-
public class DynArrayQueue extends ArrayQueue {
-
public DynArrayQueue(int size) {
-
super(size);
-
}
-
/*@Override
-
public void put(Object obj) {
-
// TODO Auto-generated method stub
-
super.put(obj);
-
}
-
*/
-
-
super.put(obj);
-
if (pos == OA.length -1){
-
//Wenn beim einfügen die Größe nicht ausreicht vergrößern
-
CopyArrayItemsToNewArray(super.getOA(), newOArray);
-
super.setOA(newOArray);
-
}
-
OA[pos] = obj; // obj in OA aufnehmen
-
int i = pos++; // pos erhöhen
-
-
}
-
-
for (int i = 0; i < oldObjectArray.length; i++) {
-
newObjectArray[i] = oldObjectArray[i];
-
}
-
}
-
}
-
/*
-
protected void push(Object obj){//Werte in Array eingeben
-
if (pos == OArry.length -1){
-
//Wenn beim einfügen die Größe nicht ausreicht vergrößern
-
Object [] newOArray = new Object[OArry.length * 2]; // neue größe - hier doppelt so groß
-
CopyArrayItemsToNewArray(super.getOArry(), newOArray);
-
super.setOArray(newOArray);
-
}
-
OArry[pos] = obj; // obj in OA aufnehmen
-
int i = pos++; // pos erhöhen
-
}*/
Java Code:
Java Code:
-
-
super(string);
-
}
-
}
ArrayQueue mit Exceptions und Vererbung
Categories: ArrayQueue mit Exceptions und Vererbung
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire