Arbeiten mit Ober/Unterklassen Vererbung Aufgabe Bitte um Hilfe
-
Hallo Leute,
Ich habe hier mal wieder eine Hausaufgabe abzugeben und komme gerade nicht ganz weiter. Wäre schön wenn ihr Feedback zu meinem Code abgeben könntet. Wie gehe ich denn bei Aufgabe 3 an die Sache ran?
Danke schon mal im Voraus.Hier kommt die Aufgabe:
1. Die Klasse OpenCounter ist vollstandig implementiert und deniert den Objekttyp eines einfachen Zahlers, der einen Zahlerstand in Form einer ganzen, nicht negativen Zahl speichert. Ein Zahler hat einen Namen, der beim Erzeugen einer Instanz durch den Parameter des Konstruktors festgelegt wird, und kann
weitergezahlt,
abgelesen und
auf 0 zuruckgestellt werden.
Implementieren Sie zwei Unterklassen MemCounter und LtdCounter von OpenCounter.
Dabei soll MemCounter zusatzlich die Fahigkeit haben, sich mit einer Methode mark()den aktuellen Zahlerstand auf einer dafur vorgesehenen int-Variablen zu speichern und mit einer Methode recall() den Zahler auf den zuletzt gespeicherten Wert zu setzen.
Wurde noch kein Wert gespeichert, dann setzt recall() den Zahler auf 0.
Ein LtdCounter verhalt sich wie ein OpenCounter, der Zahlerstand ist aber durch einen festen Wert beschankt. Dieser maximale Zahlerwert wird beim Erzeugen eines LtdCounter-Exemplars durch einen zweiten Parameter des Konstruktors festgelegt.
Testen Sie Ihre Implementierung mit Hilfe der Klasse UseCounter, die bereits vollständig programmiert ist. UseCounter muss mit einer ganzen Zahl als Parameter gestartet werden.Die Klassen OpenCounter und UseCounter durfen hierbei nicht verandert werden!2. Erganzen Sie nun die Klasse UseCounter so, dass alle Exeptions, die ausgelöst werden könnten, abgefangen werden. Die Exceptionbehandlung soll den Anwender in einem leicht verstandlichen Satz uber die Art seines Fehlers unterrichten. Auerdem soll der Rest der Applikation ausgefuhrt werden, wobei die Variable n mit dem Wert 10 initialisiert wird.
Hierzu notwendige Anpassungen von UseCounter sind jetzt erlaubt.Hier mein Quellcode zum Aufgabenteil 1 inkl der Klasse Opencounter:
class OpenCounter {
// Datenelemente
private final String name; // Name des Zaehlers
protected int count; // Zaehlerstand// Konstruktor
OpenCounter(String name) {
this.name = name;
}// Methoden
void step() { // weiterzaehlen
count++;
}int read() { // ablesen
return count;
}void reset() { // auf 0 zuruecksetzen
count = 0;
}String getName() {
return name;
}
}// OpenCounter
class MemCounter extends OpenCounter {
private int aktcount = 0;
//Methode 1
void mark() {
aktcount = read();
}//Methode 2
void recall() {
if ("".equals(count)) {
count = reset();
} else {
setcount(aktcount);
}
}
}// MemCounter
class LtdCounter extends OpenCounter {
private final int limit;
//Konstruktor
LtdCounter(int 1) {
limit = 1;
}int getLimit() {
return limit;
}void step() {
if(read() < limit) {
count++;
}
}
}//LtdCounter
-
Feedback bekommst Du doch vom Compiler: Dein Code kompiliert nicht.
-
Hallo. Das habe ich natürlich bereits versucht. Aber ich versteh nicht wo das Problem liegt.....
-
1. Codetags bitte!
2. Die Kommentare machen den Code unübersichtlich, das sie unnötig sind.
3. Kann den Code nicht kompilieren, weil ich vom Handy schreibe und somit den Fehler nicht finden.
-
Alexandria26 schrieb:
Aber ich versteh nicht wo das Problem liegt.....
Auch das sagt dir dein Compiler. Aber sowohl MemCounter als auch LtdCounter haben einige Problemchen...