tutorials.de Buch-Aktion 02/2012
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
57
ZUGRIFFE
1806
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Hi!

    also so gehts auch nicht

    du behebst, wenn der kontostand <= 0 ist, also entweder gleich 0 oder kleiner als 0, also negativ ist. Du solltest dir die if Anweisung noch einmal genauer ansehn.

    Zweitens: soll gleich in der Abfrage abgehoben werden? Du hast ja schon eine Methode die dir Geld von deinem Konto abhebt, die kannst du hier ganz locker einbaun

    Gruß
    TOM
     
    alles Gute kommt von ...

  2. #17
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Code :
    1
    2
    3
    4
    5
    6
    7
    
     
    [left]// Geldbetrag vom Konto abheben
        public boolean abheben(double betrag) {
    if (betrag > kontostand) {[/left]
    [left]return false;}[/left]
    [left]kontostand = kontostand - betrag;[/left]
    [left]} [/left]
     

  3. #18
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Jo, wir sind am richtigen Weg! Sehr gut!

    Wenn du das jetzt allerdings in einen Editor, sagen wir Eclipse eingeben würdest, würdest du einen Fehler erhalten ... Warum? Es fehlt noch eine Kleinigkeit am Ende, also nachdem du den Kontostand neu zugewiesen hast. Kleiner Tipp: ret ...

    Gruß
    TOM
     
    alles Gute kommt von ...

  4. #19
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Code :
    1
    2
    3
    4
    5
    6
    7
    
     
    // Geldbetrag vom Konto abheben
        public boolean abheben(double betrag) {
    if (betrag > kontostand) {
    return false;}
    kontostand = kontostand - betrag;
    return true;

    dann dürfte es so passen, oder?

    Und wie gehe ich das letzte an?

    Die Klasse KontoTester will ich so abändern, das das erzeugte Konto die Kontonummer
    12345678 erhalten soll. Am Ende der Methode main() soll die Kontonummer abgefragt
    und ausgegeben werden. Bei jeder einzelnen Abhebung soll getestet werden, ob sie
    erfolgreich war. Nur, wenn eine Abhebung ausgeführt werden konnte, soll der neue
    Kontostand ausgegeben werden, anderenfalls soll jeweils die Meldung „Guthaben
    nicht ausreichend.“ ausgegeben werden.

    Hier nochmal die Klasse KontoTester
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    [left]public class KontoTester {
        public static void main(String[] args) {
    Konto einKonto;
     
    // Konto anlegen
    einKonto = new Konto(500.00);
    System.out.println("Erster Kontostand: " + einKonto.getKontostand());
     
    // Vom Konto abheben
    einKonto.abheben(150.00);
    System.out.println("Kontostand nach abheben von 150.00: "
         + einKonto.getKontostand());
     
    // Auf Konto einzahlen
    einKonto.einzahlen(11.23);
    System.out.println("Kontostand nach einzahlen von 11.23: "
         + einKonto.getKontostand());
     
    // Vom Konto abheben
    einKonto.abheben(400.00);
    System.out.println("Kontostand nach abheben von 400.00: "
         + einKonto.getKontostand());
     
    // Auf Konto einzahlen
    einKonto.einzahlen(222.50);
    System.out.println("Kontostand nach einzahlen von 222.50: "
         + einKonto.getKontostand());
     
    // Vom Konto abheben
    einKonto.abheben(47.62);
    System.out.println("Kontostand nach abheben von 47.62: "
         + einKonto.getKontostand());
        }
    }[/left]
     

  5. #20
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Jep, ich würde sagen die Methode abheben(..) stimmt so.

    Hm... bei deiner Main wirst du ein Problem bekommen, und zwar gleich beim Anlegen deines neuen Kontos. Schau dir doch nochmal den Constructor an, den du in den vorherigen Posts beschrieben hast, da fehlt dir bei
    Code :
    1
    
    ... = new Konto(500.00, ...)
    noch die Kontonummer (beschrieben durch "...").

    Die Ausgabe kannst du entweder nach jedem Aufruf der Methode abheben abfragen, da ja von abheben ein boolean Wert zurückgegeben wird, oder gleich direkt in der Methode die Ausgabe managen. Das überlass ich mal dir

    Für die Abfrage der Kontonummer hast du dir bereits einen Getter geschrieben (also eine Methode die dir die Kontonummer liefert). Einfach nur noch einsetzen (auch das überlass ich dir )

    Das sollts eigentlich gewesen sein. Bin schon gespannt auf deine Lösung!

    TOM
     
    alles Gute kommt von ...

  6. #21
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    mhh.... versuch

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    public class KontoTester {
        public static void main(String[] args) {
     Konto einKonto;
     
     // Konto anlegen
     einKonto = new Konto(500.00, "12345678");
     System.out.println("Die Kontonummer lautet: "+ einKonto.getKontonummer());
            System.out.println("Erster Kontostand: " + einKonto.getKontostand());
     
     // Vom Konto abheben
     einKonto.abheben(150.00);
     if (abheben = true){
     System.out.println("Kontostand nach abheben von 150.00: "
          + einKonto.getKontostand());}
     System.out.println("Guthaben nicht ausreichend"´)
     
     // Auf Konto einzahlen
     einKonto.einzahlen(11.23);
     System.out.println("Kontostand nach einzahlen von 11.23: "
          + einKonto.getKontostand());
     
     // Vom Konto abheben
     einKonto.abheben(400.00);
     System.out.println("Kontostand nach abheben von 400.00: "
          + einKonto.getKontostand());
     
     // Auf Konto einzahlen
     einKonto.einzahlen(222.50);
     System.out.println("Kontostand nach einzahlen von 222.50: "
          + einKonto.getKontostand());
     
     // Vom Konto abheben
     einKonto.abheben(47.62);
     System.out.println("Kontostand nach abheben von 47.62: "
          + einKonto.getKontostand());
        }
    }
     

  7. #22
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Sodala, wir kommen der Sache näher, aber was wäre das Leben ohne Fehler? Langweilig, oder? In diesem Sinne ein paar Anregungen:

    // Vom Konto abheben
    einKonto.abheben(150.00);
    if (abheben = true){
    System.out.println("Kontostand nach abheben von 150.00: "
    + einKonto.getKontostand());}
    System.out.println("Guthaben nicht ausreichend"´)
    Was passiert hier genau? Lass es uns Schritt für Schritt durchgehn.

    Mit
    Code :
    1
    
    einKonto.abheben(150.00)

    rufst du richtigerweise die Methode abheben aus, und überprüfst ob es möglich ist einen Betrag abzuheben. Soweit richtig! Im nächsten Schritt versuchst du eine Abfrage zu gestalten, ob der Wert von einKonto.abheben true oder false zurückliefert. Was du aber hier machst, ist das Aufrufen von einer Methode die es nicht gibt ... du hast keine Klassenmethode, das sind Methoden die in einer Klasse global zu Verfügung stehen (aber egal), die abheben heißt. Du hast lediglich die einKonto.abheben Methode, also kannst du auch die hier nur einsetzen. Da die Methode ja einen booleschen Wert zurückliefert, und if-Anweisungen nur boolesche Ausdrücke, also wahr oder nicht wahr, interpretieren können, solltest du die Methode gleich einbauen, also z.B. so:

    Code :
    1
    
    if (einKonto.abheben(150)) { ... }

    Was erhält man dabei? Du erhälst dabei die Aussage, "Ja, ich kann geld abheben" oder die Aussage "Nein, des geht nicht". Angenommen du kannst deine 150 abheben, dann liefert die Methode den Wert true, also geht die if-Anweisung in den {} Bereich. Hier kannst du dann auch spezifizieren was geschen soll, wenn dieser Fall eintritt (z.b. eine Ausgabe mit "Erfolgreich beho...." ). Ist der Wert allerdings "false", also nicht erfüllt, dann wird nichts weiter passieren, und der schöne Code den du in den Bereich {} geschrieben hast, tja, der wird nicht ausgeführt. Um nun aber den "false" Fall auch abdecken zu können, gibt es ein ganz gefinkeltes "else". Das mußt du gleich darunter anbringen, z.B. so:

    Code :
    1
    2
    3
    4
    5
    6
    
    if ( ... ) {
     .....
    }
    else {
     ...
    }

    Hier kannst du wiederum spezifizieren was passieren soll. In deinem Fall sagt das aus, dass keine Behebung möglich war ... also muss die Ausgabe lauten "Leider ...".

    So,ich hoffe ich hab dir nicht alles verraten

    Also, auf ein Neues

    TOM
     
    alles Gute kommt von ...

  8. #23
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Ok, Rechschreibfehler sind bitte zu entschuldigen
     
    alles Gute kommt von ...

  9. #24
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    // Konto anlegen
     einKonto = new Konto(500.00, "12345678");
     System.out.println("Die Kontonummer lautet: "+ einKonto.getKontonummer());
            System.out.println("Erster Kontostand: " + einKonto.getKontostand());
     
     // Vom Konto abheben
     einKonto.abheben(150.00);
     if (einKonto.abheben(150)){
     System.out.println("Kontostand nach abheben von 150.00: "
          + einKonto.getKontostand());}
     else{
     System.out.println("Guthaben nicht ausreichend"´);
     }
    also sollte es so aussehen?
     

  10. #25
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Jooo! Jetzt haben wirs gleich!!

    Das einzige was du jetzt noch bedenken mußt, ist, dass jedesmal, wenn du die Methode meinKonto.abheben(..) aufrufst, egal ob in einer if-Anweisung oder nicht, der Betrag, sagen wir er ist valide, und darf abgehoben werden, auch tatsächlich abgehoben wird! Also in deinem Fall werden statt 150 Geldeinheiten 300 Geldeinheiten abgezogen. Der Rest stimmt!

    TOM
     
    alles Gute kommt von ...

  11. #26
    Avatar von kroesi
    kroesi kroesi ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    166
    Bis auf

    Code :
    1
    
    if (kontostand - betrag =<0)

    sieht es gut aus , muss aber heissen :

    Code :
    1
    
    if (kontostand - betrag >=0)

    Sonst hebst dur nur ab, wenn du auf jedenfall kein Geld mehr hast oder minus machst ...

    Weiter so,

    Krösi
     

  12. #27
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Ein Tipp noch, solche Aufgaben sind leicht mit einem Debugger nachzuvollziehen, also am besten ausprogrammieren und mit einem Debugger drüberfahren. Dann kannst du auch erkennen wie/was/wo passiert, welche Werte deine Variablen haben etc.

    TOM
     
    alles Gute kommt von ...

  13. #28
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Zitat Zitat von kroesi
    Bis auf

    Code :
    1
    
    if (kontostand - betrag =<0)

    sieht es gut aus , muss aber heissen :

    Code :
    1
    
    if (kontostand - betrag >=0)

    Sonst hebst dur nur ab, wenn du auf jedenfall kein Geld mehr hast oder minus machst ...

    Weiter so,

    Krösi
    HÄ? Wo ist denn das?
     

  14. #29
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Zitat Zitat von TommyMo
    Jooo! Jetzt haben wirs gleich!!

    Das einzige was du jetzt noch bedenken mußt, ist, dass jedesmal, wenn du die Methode meinKonto.abheben(..) aufrufst, egal ob in einer if-Anweisung oder nicht, der Betrag, sagen wir er ist valide, und darf abgehoben werden, auch tatsächlich abgehoben wird! Also in deinem Fall werden statt 150 Geldeinheiten 300 Geldeinheiten abgezogen. Der Rest stimmt!

    TOM
    muss dann das hier
    Code :
    1
    
    if (einKonto.abheben(150)

    so lauten?
    Code :
    1
    
    if (einKonto.abheben()
     

  15. #30
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Noch von der ersten Seite in der du die abheben Methode implementierst
     
    alles Gute kommt von ...

Ähnliche Themen

  1. Microsoft Exchange 2007 Step by Step
    Von denisSCR im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 24.02.10, 11:25
  2. "making of" eines 3d characters - step by step
    Von pixel-panik im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 07.02.08, 11:15
  3. Step-by-Step Tutorial: Achieve Rapid Application Development with Seam+Eclipse+Tomcat
    Von Techieexchange im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 13.11.07, 22:43
  4. Antworten: 0
    Letzter Beitrag: 13.12.05, 21:09
  5. Suche Step-by-step Tut
    Von Oxygen im Forum 3D Studio Max
    Antworten: 1
    Letzter Beitrag: 22.07.01, 13:13