Informatik Problem mit Java BlueJ Quelltext
Hey, ich habe zu einem "Parkhaus Szenario" einen Quelltext erstellt, aber ich kriege in einer Klasse bei einer/zwei Methoden immer Fehlermeldungen.
Bei der Sitation gibt es die Klassen Automat, Ticket und Parker. Ich wollte das Problem, dass der Automat den eingezahlten Betrag des Parkers (nachdem die Gebühr auf dem Display angezeigt wurde und diese ihm von seinem aktuellen Geld abgezogen wurde) prüft so lösen, dass es eine Methode gibt, mit der der Betrag auf seine Richtigkeit überprüft wurde und wenn (if) der Betrag stimmt, das Ticket als bezahlt markiert wird und wenn nicht, die erwartete Gebühr erneut auf dem Display angezeigt wird usw.
Ich könnte den Parker auch einfach, wenn er genügend Geld hat, den Betrag automatisch bezahlen lassen, aber ich möchte wissen, ob es auch auf diese Weise geht.
public class Automatus5000 { //Anfang Attribute private double display; private double aktuelleUhrzeit; private double stundenpreis; public Parker aktuellerParker; private Ticket aktuellesTicket; //Ende Attribute
//Anfang Methoden
/**
* Der Konstruktor erzeugt ein Objekt der Klasse, wobei alle Attribute per Parameteruebergabe initialisiert werden.
* @param pDisplay ...
* @param pAktuelleUhrzeit Gibt den momentanen Wert des Attributs aktuelleUhrzeit an.
* @param pStundenpreis Gibt den momentanen Wert des Attributs stundenpreis an.
* @param pAktuellesTicket Ein Objekt der Klasse Ticket wird als aktuellesTicket referenziert.
*/
public Automatus5000(double pAktuelleUhrzeit, double pStundenpreis)
{
display=0;
aktuelleUhrzeit=pAktuelleUhrzeit;
stundenpreis=pStundenpreis;
aktuellesTicket=null;
aktuellerParker=null;
}
public void ticketEinziehen(Ticket aktuellesTicket)
{
aktuellerParker.ticketEinschieben();
gebuehrBerechnen();
gebuehrAnzeigen();
}
public void ticketAusgeben(Ticket pAktuellesTicket, double pGeld)
{
if (aktuellerParker.geld=display)
{
ticketMarkieren();
aktuellesTicket=null;
}
}
/**
* ...
* @param pGeld Der vom Objekt Parker eingezahlte Geldbetrag.
*/
public boolean korrekterBetrag(double pGeld)
{
if (aktuellerParker.pGeld=display)
{
return true;
Die (aktuellste T-T) angezeigte Fehlermeldung:
"incompatible types: double cannot be converted to boolean"
Ist dieser Weg möglich und wenn ja, wo liegt mein Fehler? Ich hoffe, jemand kann mir dabei helfen.. .-.
Danke ^^
1 Antwort
Auf Anhieb sehe ich schon mal diesen Fehler:
if (aktuellerParker.pGeld=display)
DAS wäre eine Zuordnung. Einen boolean Wert, als wahr/ falsch erhältst Du so:
if (aktuellerParker.pGeld==display)
/** * ... */ public void ticketEinziehen(Ticket aktuellesTicket) { aktuellerParker.ticketEinschieben();
gebuehrBerechnen();
gebuehrAnzeigen(); }
public void ticketAusgeben(Ticket pAktuellesTicket, double pEmpfangenerBetrag) {
if (korrekterBetrag=true) {
ticketMarkieren();
aktuellesTicket=null; }
}
public boolean korrekterBetrag() {
if ((empfangenerBetrag == display))
{
return true;
}
else
{
return false;
gebuehrAnzeigen(); }
}
Okay, vielen Dank!
Siehst du noch irgendwelche anderen Fehler darin?