Exception werfen

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

katerchen1982

Grünschnabel
Java:
public class WeinTest {

    public static void main(String[] args)
       {
           Wein flasche1= new Wein();
           Wein flasche2= new Wein();
           Wein flasche3 = new Wein();
           try {
            new Wein(-10,20.5);
            System.out.println(flasche1.getPreisProFlasche());
           
           }catch(IllegalArgumentException e) {
               System.out.println(e.getMessage());
                }
          
           try {
                new Wein(10,20.5);
                System.out.println(flasche2.getPreisProFlasche());
               
               }catch(IllegalArgumentException e) {
                   System.out.println(e.getMessage());
                    }
          
           try {
                new Wein(5,8);
                System.out.println(flasche3.getPreisProFlasche());
               
               }catch(IllegalArgumentException e) {
                   System.out.println(e.getMessage());
                    }
       
          
    }
         
}
         
    ------------------------------------------------------------------------------------------------------
ublic class Wein {
    private int alter;
    private double grundpreis;
    private double preisProFlasche;
   
    //der StandardkKonstruktor
    public Wein() {
        //er ruft über this() den Konstruktor mit den beiden Parametern auf
        //und übergibt die Standardwerte
        this(1, 10);
    }
   
    //der Konstruktor setzt das Alter
    //der Preis erhält einen Standardwert
    public Wein(int alter) {
        //er ruft ebenfalls über this den Konstruktor mit den beiden Parametern auf
        this(alter, 10);
    }
   
    //der Konstruktor setzt den Preis
    //das Alter erhält einen Standardwert
    public Wein(double grundpreis) {
        //und dieser Konstruktor ruft auch den Konstruktor mit den beiden Parametern auf
        this(1, grundpreis);
    }
   
    //der Konstruktor setzt das Alter und den Grundpreis
    //er enthält jetzt Plausibilitätsprüfungen
    public Wein(int alter, double grundpreis) {
        //die Plausibilitätsprüfung für das Alter
        if (alter > 0 && grundpreis > 9) {
            this.alter = alter;
            this.grundpreis = grundpreis;
        }
        else
            throw new IllegalArgumentException("Es düren keine negativen Werte übergeben werden");
       
    }
       
   
   
    //die Methode berechnet den Preis pro Flasche
    public void preisBerechnen() {
        preisProFlasche = alter * grundpreis;
    }
   
    //die Methode liefert den Preis pro Flasche
    public double getPreisProFlasche() {
        preisBerechnen();
        return preisProFlasche;
    }
}
Hallo!!
Kurze Frage!
Kann mir bitte jemand sagen warum das Programm nicht richtig rechnet? Egal was für Werte ich dem Objekt für den Konstruktor mit int und double Werten mitgebe es kommt immer 10 raus.
Im letzten Konstruktor soll eine Exception geworfen werden wenn wenn ein negatives alter eingegeben wird oder der grundpreis kleiner 10 ist.

Vielen Dank schon mal im voraus!!!

MFG
 
Zuletzt bearbeitet von einem Moderator:

Yaslaw

alter Rempler
Moderator
Was macht eine solche Zeile?
Java:
new Wein(5,8);
Nicht viel. Du solltest den neuen Wein auch der Variabel zuordnen. Ansonsten haben alle 3 FLaschen den initialwert (1,10) drin
Java:
flasche3 = new Wein(5,8);
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge