boolean-Abfrage?

Angelika_25

Mitglied
Hallo und zwar habe ich folgendes Problem.
Ich habe eine main-Klasse und eine andere Klasse (Konto und TestKonto).
Ich habe in der Klasse mehrere Methoden:

Konto.java
public class Konto {
private double kontoStand;
private double betrag;

//Konstruktor
public Konto(double k) {
this.kontoStand=k;
}

public boolean einzahlen(double betrag) {

if (betrag>0) {

return true;
}
else
{
return false;
}
}

public double getKontoStand() {
return this.kontoStand+=betrag;

}
Jetzt möchte ich, wenn true zurückgegeben wird, den Betrag (den ich in der TestKlasse angeb) auf den Kontostand dazuaddiert wird. Des is ganz einfach, ich hab das auch schon öfters gemacht, aber irgend wie krieg ich des grad nicht hin. Ich brauch ja ne if-Verzweigung, ungefähr so: if(einzahlen=true) { this.kontoStand+=betrag}else{this.kontoStand=kontoStand}........aber so funktioniert es in der Klasse Konto jedenfalls schon mal nicht......
Ich würde mich über eine schnelle Hilfe sehr freuen.
Liebe Grüße, Angelika.
 
Huhu
erstma willkommen unter den ProgrammierFrauen :D
erstma benutz doch bitte die Code tags
[.java] code [./java] ohne die Punkte :D

Dann versteh ich net genau deine methode "getKontoStand()" Du machst dort eine getMethode wo du aber den Betrag zufuegen willst. Eine get sollte nichts aendern sondern nur zurueckgeben
Java:
public double getKontoStand() {
return this.kontoStand;
}

Dann mach dir eine methode in der du den Betrag zum alten hinzufuegen willst also eine setMethode
Java:
public double setKontoStand(double betrag) {
    this.kontoStand+=betrag;
}
Hierin kannst du dann deine methode einzahlen benutzen
in etwa
Java:
if (einzahlen(betrag)) {
    ...
} else {
   ....
}
 
stimmt soweit. aber aus dem Setter würde ich noch ein Methode ohne Rückgabe machen.

Java:
      public void setKontoStand(double betrag) {
          this.kontoStand+=betrag;
      }
 
Sorry wegen den Code-Tags. Hab da drauf nicht geachtet..
Stimmt mit der get-Methode, das war Schwachsinn, ist mir eben bei deiner Antwort aufgefallen. Also jetzt:
Java:
 public double getKontoStand() {
     return this.kontoStand;

   }

Ich hab ein Klassendiagramm:

Konto
-kontoStand: double
+Konto (k:double)
+einzahlen (betrag: double): boolean
+abheben(betrag: double): boolean
+getKontoStand():double


..........laut Klassendiagramm müsste es doch dann auch ohne set-Methode gehen, oder
 
Du kannst die if-Bedingung die ich dir oben bereits geschrieben hab, auch in deine "einzahlen"Methode nehmen, sicherlich. Nur das du dann in der Bedingung nicht die Methode aufrufst, sondern direkt schaust ob betrag>0
Aber normalerweise macht man getter und setter fuer so etwas.
Ist das Klassendiagram vorgegeben?
 
Moin!

Ich hab ein Klassendiagramm:

Konto
-kontoStand: double
+Konto (k:double)
+einzahlen (betrag: double): boolean
+abheben(betrag: double): boolean
+getKontoStand():double

Eigentlich ist es klar:
Bei der Methode einzahlen überprüfst du, ob der einzuzahlende Betrag positiv ist.
Falls ja, addierst du den Betrag auf den Kontostand und gibst true zurück. Falls nein, wird false zurückgegeben.
Somit kann man sicherstellen, das keine Negativbeträge eingezahlt werden können.. Dafür ist schließlich das Abheben da..
Code:
public boolean einzahlen(double betrag){
   if(betrag > 0){
      kontoStand = kontoStand+betrag;
      return true;
   }
   else
       return false;     
}

Abheben geht dann ähnlich..
Und bei getKontostand gibst du dann nur die Variable kontoStand zurück, so wie du es schon hast

@ mimi und Javacoder
Code:
      public double setKontoStand(double betrag) {

          this.kontoStand+=betrag;
  
      }
Ist zum Beispiel meines Erachtens überhaupt nicht richtig. Denn es wird kein Kontostand gesetzt (was ein Setter machen sollte), sondern etwas hinzugefügt.
Also das Klassendiagramm von Angelika macht durchaus mehr Sinn!

*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:
@MeinerEiner
Also ich seh keinen Unterschied zwischen setzen und hinzufuegen.
Und wenn das tatsaechlich so falsch sein sollte, wie du meinst, dann werd cih mal in meinen alten Unterlagen schauen, weil ich bin mir zu 99% sicher das ich das so immer gemacht habe inner FH. Dann hab ich es wohl immer falsch gelernt!
 
Ja das Klassendiagramm ist vorgegeben, ich würde nämlich normal auch lieber set-Methoden dafür nehmen. Ich soll die if-Bedingung in die einzahlen Methode mit reinbringen, aber wo?
Ich hab das jetzt so gemacht:

Java:
 public boolean einzahlen(double betrag) {
    if (betrag>0) {

      return true;
    }
    else
    {
     return false;
    }

      if (einzahlen(betrag)=true) {

          this.kontoStand+=betrag ;

      } else {

         System.out.println("Fehler: Einzahlungsbetrag = "+betrag);

      }
  }
Aber so klappt das auch nicht, wieso? Wo muss ich es denn in der Methode hinschreiben?
Liebe Grüße
 
Hi.
@MeinerEiner
Also ich seh keinen Unterschied zwischen setzen und hinzufuegen.
Nun, es ist schon ein Unterschied ob der Kontostand auf 500 € gesetzt wird, oder der Kontostand von 5.000 € auf 5.500 € erhöht wird... :)
Und wenn das tatsaechlich so falsch sein sollte, wie du meinst, dann werd cih mal in meinen alten Unterlagen schauen, weil ich bin mir zu 99% sicher das ich das so immer gemacht habe inner FH. Dann hab ich es wohl immer falsch gelernt!
Ja, sieht wohl so aus.

Gruß
 
Zurück