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;
}
}
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: