Klasse erweitern um eine Methode "void decrement()"

Diskutiere Klasse erweitern um eine Methode "void decrement()" im Java Basics - Anfänger-Themen Bereich.
bensdt

bensdt

Guten Morgen an Alle :),

versuche mich gerade schon mal an den Java-Aufgaben die für nächstes Semester vorgesehen sind und habe da folgendes Problem:

folgende Klasse habe ich vorgegeben,
Java:
public class Counter
{
private int x; // Zählerstand
public Counter() {x=0;} // Konstruktor
public void increment() {++x;} // Hochzählen
public int get(){return x;} // Auslesen
public void reset(){x=0;} // Zurücksetzen
}
diese Klasse soll ich nun um eine Methode void decrement() erweitern, welche mir den Zählerstand um 1 verringert, sofern er noch positiv war.

Meine Idee war nun ganz schlicht,
Java:
public void decrement() {--x;} // Runterzählen
jedoch bin ich ein bisschen skeptisch da ich mit der Methode in meinem Test auch in den negativen Zahlenbereich kommen kann :(


Würde mich über Tipps oder Hinweise freuen :)


Liebe Grüße :)
 
Robat

Robat

Du musst eben vorher mit einer if-Abfrage prüfen, ob der Zähler noch größer 0 ist
 
bensdt

bensdt

Vielen Dank,
hat geklappt :)

Habe es nun so gelöst:
Java:
public class Counter
{
private int x;                     // Zählerstand
public Counter() {x=0;}         // Konstruktor
public void increment() {++x;}    // Hochzählen
public void decrement()
    {if (x > 0) {--x;}}            // Runterzählen (sofern positiv)
public int get(){return x;}     // Auslesen
public void reset(){x=0;}         // Zurücksetzen
}
in dem folgenden Test wurden mir die richtigen Zahlen ausgegeben:

Java:
public class CounterTest
{
public static void main(String[] args)
    {
    Counter a= new Counter();             // Erzeugen eines Zählers a
    Counter b= new Counter();             // Erzeugen eines Zählers b
    a.increment();                         // Hochzählen von a
    a.increment();                         // Nochmaliges Hochzählen von a
    b.increment();                        // Hochzählen von b
    b.decrement();                        // Runterzählen von b
    b.decrement();                        // Nochmaliges runterzählen von b -- nichtmehr positiv (Geht nicht!)
    System.out.println("a=" + a.get()); // Liefert: a=2
    System.out.println("b=" + b.get()); // Liefert: b=0
    }   
}

So, nun an die zweite Aufgabe, hier soll ich eine eigene Klasse mit einer statischen main-Methode schreiben,
die einen Zähler anlegt, der in for-Schleifen mehrfach incrementiert und decrementiert wird.
Hab da schon eine Idee die ich gleich mal versuchen werde anzuwenden :)
 
bensdt

bensdt

Guten Abend,

die erwähnte Aufgabe mit den for-Schleifen hat soweit geklappt, nun hab ich ein neues Problem :(

folgendes ist zu bearbeiten:
Die Klasse Counter soll um eine Methode void save(), die den aktuellen Zählerstand in einer Hilfsgröße speichert, erweitert werden und um eine Methode void restore(), mit der der Zähler wieder auf den zuletzt gesicherten Wert zurückgesetzt wird.
Ein Aufruf von restore ohne vorheriges save() soll zu einer Fehlermeldung führen.

folgendes habe ich bisher gemacht:
Klasse Counter
Java:
public class Counter
{
    protected int x;            // Zählerstand

    public Counter() {x=0;}            // Konstruktor
    public void increment() {++x;}        // Hochzählen
    public int get(){return x;}        // Auslesen
    public void reset(){x=0;}        // Zurücksetzen
}
Erweiterung der Klasse Counter um eine Methode void decrement() mit der der Zählerstand um 1 verringert wird, sofern dieser noch positiv war.
Java:
public class Counter2 extends Counter
{
    public Counter2(int v) {x=v;}        //Konstruktor
    public void decrement()
    {    if (x>0) --x;
    }                    //Decrementieren
}
nun die Erweiterung der Klasse Counter mit vord save() und void restore()...bei der ich leider nicht so richtig weiter komme....:(
Java:
public class Counter3 extends Counter
{
    public Counter3(int y) {x=y}        //Konstruktor
    public void save()
    public void restore()
}
würde mich sehr über Tipps und Ratschläge freuen.

Liebe Grüße
 
J

JustNobody

Also "Hilfsgröße" dürfte hier dann wohl einfach eine (oder ggf. auch mehrere?) weitere Variable bedeuten. So würde ich es zumindest auffassen.

Also brauchst Du nun eine (oder mehrere) Variable, in der Du den Zählerstand speichern könntest und Du musst den Zustand erkennen können, dass der Wert noch nicht gesetzt wurde.

Diesbezüglich müsstet Du dann im Studien Material ja etwas haben, das so etwas beschreibt. Oder Du machst es evtl. mit Dir bekannten Mitteln. Wobei ich hier direkt zwei Lösungen mit einer Variablen sehe und eine Lösung, die mit zwei Variablen arbeiten würde....
 
bensdt

bensdt

Danke für deine Hilfe,

werde es mal versuchen und schauen ob ich es hin bekomme :)
 
Thema: 

Klasse erweitern um eine Methode "void decrement()"

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben