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 de niert 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...


Anmelden zum Antworten