moin nihilfire :)
ich würde deiner Klasse Schieberegister noch zwei Methoden spendieren:
Die erste nenne ich mal spontan "prüfeInhalt()" mit einem Rückgabewert des Typs boolean.
In dieser Mehtode durchläufst du das Array des Schieberegisters (wie man das macht, siehst du schon im Konstruktor von "Register". Was dann noch fehlt ist eine Überprüfung ob der Inhalt 0 oder 1 ist. Weicht der Wert an irgend einer Stelle davon ab, wird false zurück geliefert ansonsten kann am Ende der Schleife ein true zurück gegeben werden.Falls der Aufruf deiner Methode false zurück gibt, rufst du die zweite Methode auf (die ich spontan "neuesRegister()" nenne). In dieser Mehtode rufst du ganz banal den Kostruktor der Klasse Register auf.
liebe Grüße aus Berlin
lina-
danke für den Tip aber ich soll mich ja an die Aufgabenstellung halten und die Überprüfung im Konstruktor der Unterkalsse machen...
Aufgebenstellung:
Der Konstruktor soll ein Array mit short-Einträgen als Parameter übergeben bekommen. Er soll prüfen, ob alle diese Einträge 0 oder 1 sind und (falls das der Fall ist) sie bei der Erzeugunug der neuen Registers als Anfangswerte benutzen. Ist das nicht der Fall, so soll ein Register mit derselben Länge wie der Übergebene Array erzeugt und mit Nullen vorbesetzt werden. Dabei soll der Konstruktor der Oberklasse benutzt werden.
ohne den letzten Satz zu beachten sieht meine Lösung so aus:
Schieberegister(short[] speicherRegister){
for (int i = 0; i < speicherRegister.length; i++){
if(!(speicherRegister[i] == 0 || speicherRegister[i] == 1)){
anfErr = true;
}
else{
this.speicherRegister = speicherRegister;
}
}
if(anfErr){
for (int j = 0; j < speicherRegister.length; j++){
speicherRegister[j] = 0;
}
}
}
Gruß, nihilfire