ERLEDIGT
NEIN
NEIN
ANTWORTEN
57
57
ZUGRIFFE
1806
1806
EMPFEHLEN
-
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ß
TOMalles Gute kommt von ...
-
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]
-
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ß
TOMalles Gute kommt von ...
-
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]
-
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 beinoch die Kontonummer (beschrieben durch "...").Code :1
... = new Konto(500.00, ...)
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!
TOMalles Gute kommt von ...
-
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()); } }
-
Sodala, wir kommen der Sache näher, aber was wäre das Leben ohne Fehler? Langweilig, oder?
In diesem Sinne ein paar Anregungen:
Was passiert hier genau? Lass es uns Schritt für Schritt durchgehn.// 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"´)
MitCode :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
TOMalles Gute kommt von ...
-
Ok, Rechschreibfehler sind bitte zu entschuldigen
alles Gute kommt von ...
-
also sollte es so aussehen?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"´); }
-
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!
TOMalles Gute kommt von ...
-
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
-
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.
TOMalles Gute kommt von ...
-
HÄ? Wo ist denn das?
Zitat von kroesi
-
muss dann das hier
Zitat von TommyMo
Code :1
if (einKonto.abheben(150)
so lauten?
Code :1
if (einKonto.abheben()
-
Noch von der ersten Seite in der du die abheben Methode implementierst
alles Gute kommt von ...
Ähnliche Themen
-
Microsoft Exchange 2007 Step by Step
Von denisSCR im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 24.02.10, 11:25 -
"making of" eines 3d characters - step by step
Von pixel-panik im Forum Cinema 4DAntworten: 1Letzter Beitrag: 07.02.08, 11:15 -
Step-by-Step Tutorial: Achieve Rapid Application Development with Seam+Eclipse+Tomcat
Von Techieexchange im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 13.11.07, 22:43 -
Installation von Cocoon in Eclipse - Step by Step
Von downset04 im Forum JavaAntworten: 0Letzter Beitrag: 13.12.05, 21:09 -
Suche Step-by-step Tut
Von Oxygen im Forum 3D Studio MaxAntworten: 1Letzter Beitrag: 22.07.01, 13:13





Zitieren
Login




