Übersicht

  => Die Klasse SimpleEingabe
  => Wie benutzt man die Klasse SimpleEingabe?
  => Die Klasse InteraktivKonto
  => Beispiele
  => Aufgaben


Die Klasse SimpleEingabe

Die Klasse SimpleEingabe wird hier nicht abgedruckt (645 Zeilen!), es geht eher um die Benutzung der Klasse, dafür gibt es Dokumentation auf Englisch, die von einem Java-Programm namens javadoc aus dem Programm SimpleEingabe.java "automatisch" erzeugt wird. Dazu werden bestimmte Kommentare ausgewertet, Beispiel (zur Methode readLine( ) vom Typ String):

 /**********************************************************
     *Reads a line of text and returns that line as a String value.
     *The end of a line must be indicated either by a new-line
     *character '\n' or by a carriage return '\r' followed by a
     *new-line character '\n'. (Almost all systems do this
     *automatically. So, you need not worry about this detail.)
     *Neither the '\n', nor the '\r' if present, are part of the
     *string returned. This will read the rest of a line if the
     *line is already partially read.
     *********************************************************/

Ein JavaDoc-Kommentar beginnt mit /** und endet mit */. In einer Zeile werden die Leerzeichen bis zum * überlesen, ansonsten siehe hier.

<<<

Wie benutzt man die Klasse SimpleEingabe?

So:

String text = SimpleEingabe.readLine();

Wegen einer Methode schreibt man keine Klasse, in der Klasse SimpleEingabe findet man insgesamt 19 Methoden! Beispiel:

int Zahl = SimpleEingabe.readInt();

Zeit für ein richtiges Beispiel:


1    System.out.println("Gib drei Zahlen ein: ");
2    System.out.print("1. Zahl => ");
3    Zahl1  = SimpleEingabe.readInt();
4    System.out.print("2. Zahl => ");
5    Zahl2  = SimpleEingabe.readInt();
6    System.out.print("3. Zahl => ");
7    Zahl3  = SimpleEingabe.readInt();
8    System.out.println("Zahlen => " + Zahl1 + "  " + Zahl2 + "  " + Zahl3);
9    raetsel rt = new raetsel();
10   System.out.println("Ergebnis => " + rt.rechne(Zahl1,Zahl2,Zahl3));
11   System.out.print("Nochmal? (J/N) ");
12   Ende = SimpleEingabe.readLine();

Erklärungen:

<<<

Die Klasse InteraktivKonto . . .

. . . beerbt unsere Klasse BankKontoExt vom letzten Mal:


class InteraktivKonto extends BankKontoExt

Hier das UML-Diagramm:

Du siehst: Auch die Klasse InteraktivKonto muss zwei Konstruktoren vereinbaren (Warum?). Die neue Methode interaktiv() benutzt die Klasse SimpleEingabe:

public void interaktiv()       // interaktiv
   { // Zugriff auf die Varibale in der Super-Klasse
      double betrag;
      System.out.println("Bitte Betrag eingeben: ");
      betrag = SimpleEingabe.readLineDouble();
      if (betrag > 0.0)
      {
            super.kontostand = super.kontostand + betrag;
      }
   }
<<<

Beispiele

findest du im Lehrer-Ordner rechts oben auf dem Desktop unter wspiegel u. s. w.; alternativ: http://www.wspiegel.de/upl/InteraktivKonto.html
http://www.wspiegel.de/upl/raetselMain.html
(Die Klasse SimpleEingabe kann leider nur in den Computerräumen der Schule am Ried zur Verfügung gestellt werden . . .)

<<<

Aufgaben

  1. Nimm deine Bankanwendung vom letzten Mal (BankApp2.java) und benutze diesmal ausschließlich (!) die Aufrufe der Klasse InteraktivKonto. Probiere auch die Methode interaktiv() (Abspeichern unter dem Namen BankApp3.java)

  2. Schreibe eine Klasse DispoKonto, welche die Klasse InteraktivKonto beerbt:
    class DispoKonto extends InteraktivKonto
    Hier das UML-Klassendiagramm (Auszug):
    Sinn der Klasse DispoKonto: Beim Einrichten des Kontos legt die Bank normalerweise die Dispo-Grenze fest, dass ist die Grenze, bis zu der du überziehen darfst. Welche Methoden musst du laut UML-Diagramm anpassen? Wie?

  3. Nimm deine Bankanwendung BankApp3.java (s. o.) und teste deine neue Klasse DispoKonto (Abspeichern unter dem Namen BankApp4.java)
    Überlege: Von welcher Klasse musst du diesmal ableiten? UML-Diagramm? Funktioniert auch noch die Methode ueberweisung?

  4. Finde heraus, wie die Methode rechne(Zahl1,Zahl2,Zahl3) aus der Klasse raetsel funktioniert. Für diese Aufgabe benötigst du: Hier ein Testlauf:
    Gib drei Zahlen ein:
    1. Zahl => 12
    2. Zahl => 22
    3. Zahl => 32
    Zahlen => 12  22  32
    Ergebnis => 648
    Nochmal? (J/N) n
    Ciao  . . .
    


<<<
    W. Spiegel, Kontakformular