this

seymenxkaya

Aktives Mitglied
Ich habe eine Methode, welche den Preis von Autos vergleichen soll
Java:
public Auto(String marke, int preis, int reifen) {
        
        this.marke = marke;
        this.preis = preis;
        this.reifen = reifen;
        
    }
public void vergleiche(int preis) {
        
        this.preis = preis;
        
        if(this.preis<=preis) {
            
            System.out.println("Das Auto " + this.marke + " kannst du dir leisten");
        }
        else if (this.preis>preis) {
            
            System.out.println("Das Auto " + this.marke + " kannst du dir nicht leisten");
        }
Und in meiner Main Methode diese Forderung
Java:
        System.out.println("Wie viel Geld möchtest du ausgeben?");
        eingabe = scan.nextInt();
        
        Auto audi = new Auto("Audi", 4000, 4);
        
        audi.vergleiche(eingabe);
Doch wenn ich z.B 2500 eingebe sagt mir die Methode, dass ich mir das Auto leisten kann, obwohl es nicht stimmt. Kann mir wer helfen?
 

Robat

Top Contributor
Du sagst doch auch in der ersten Zeile der vergleiche Methode, dass der übergebene Preis gleich dem Preis des Autos sein soll.
 

Robat

Top Contributor
Du verstehst mich falsch...
Java:
public void vergleiche(int preis) {
        this.preis = preis;  // <--- (1)
       
        if(this.preis<=preis) { // <--- (2)
           
            System.out.println("Das Auto " + this.marke + " kannst du dir leisten");
        }
        else if (this.preis>preis) {
           
            System.out.println("Das Auto " + this.marke + " kannst du dir nicht leisten");
        }
}
Du übergibst der Methode vergleiche einen Preis. preis = 2500. In Zeile (1) sagst du, dass this.preis (Preis das aktuellen Auto Objektes - also bei dir 4000), gleich preis (Übergebener Preis - also bei dir 2500) sein soll. Nach dieser Zeile ist also sowohl this.preis als auch preis 2500.
In (2) vergleichst du dann die Preise .. du sagst ja aber vorher dass this.preis = preis .. demnach ist (2) immer true.

Du gehst ja auch nicht zum Händler wenn du 2500€ dabei hast und sagst ihm, dass der Preis des Autos jetzt 2500€ ist ;)
 

seymenxkaya

Aktives Mitglied
Du übergibst der Methode vergleiche einen Preis. preis = 2500. In Zeile (1) sagst du, dass this.preis (Preis das aktuellen Auto Objektes - also bei dir 4000), gleich preis (Übergebener Preis - also bei dir 2500) sein soll. Nach dieser Zeile ist also sowohl this.preis als auch preis 2500.
In (2) vergleichst du dann die Preise .. du sagst ja aber vorher dass this.preis = preis .. demnach ist (2) immer true.
Ach du lieber Gott xD Ja jetzt habe ich es verstanden, einfach die erste Zeile raus nehmen. War ein Denkfehler vielen Dank.
 

Neue Themen


Oben