Hallo Ich habe eine Frage, bezüglich meines Codes. Ich habe 3 Klassen, Tiertest, Tier und Wal.
[CODE lang="java" title="Das hier ist der Tiertest Teil"]public class Tiertest {
public static void main(String[] args) {
Tier t1 = new Tier();
t1.setAlter(5);
t1.setGroeße(2.3);
System.out.println(t1);
Tier t2 = new Tier(5.2, 1);
System.out.println(t2);
System.out.println(Tier.liesBestand());
Wal w1 = new Wal(8.6, 4, false);
System.out.println(w1);
Wal w2 = new Wal (18.6, 12, true);
System.out.println(w2);
System.out.println(Tier.liesBestand());
}}
[/CODE]
[CODE lang="java" title="Weiter gehts mit Tier"]public class Tier {
protected int alter;
protected double groesse;
protected static int bestand = 0;
public Tier() {
bestand ++;
}
public Tier(double groesse, int alter) {
this.alter = alter;
this.groesse = groesse;
bestand ++;}
public void setAlter (int alter) {
this.alter = alter;
}
public void setGroeße (double groesse) {
this.groesse = groesse;
}
public String toString() {
return "Größe: " + groesse + " Alter: " + alter;
}
public static int liesBestand() {
return bestand;
}}
[/CODE]
[CODE lang="java" title="Und die Klasse Wal"]public class Wal extends Tier {
private boolean zahnwal;
public void setGroesse (double groesse) {
if (groesse <= 18) {
this.groesse = groesse;
} else {
groesse = 18;
}
}
public Wal (double groesse, int alter, boolean Zahnwal) {
super (groesse, alter);
if (groesse <= 18) {
bestand ++;
}
}
public String toString() {
return super.toString() + " Zahnwal " + zahnwal;
}
}
[/CODE]
Jetzt habe ich ein Problem bei der Ausgabe, und zwar sollte die Ausgabe:
Größe: 2.3 Alter: 5
Größe: 5.2 Alter: 1
2
Größe: 8.6 Alter: 4 Zahnwal false
Größe: 0.0 Alter: 12 Zahnwal true
4
lauten, jedoch lautet sie:
Größe: 2.3 Alter: 5
Größe: 5.2 Alter: 1
2
Größe: 8.6 Alter: 4 Zahnwal false
Größe: 18.6 Alter: 12 Zahnwal false
5
Hat jemand eine Ahnung, wo der Fehler liegt?
[CODE lang="java" title="Das hier ist der Tiertest Teil"]public class Tiertest {
public static void main(String[] args) {
Tier t1 = new Tier();
t1.setAlter(5);
t1.setGroeße(2.3);
System.out.println(t1);
Tier t2 = new Tier(5.2, 1);
System.out.println(t2);
System.out.println(Tier.liesBestand());
Wal w1 = new Wal(8.6, 4, false);
System.out.println(w1);
Wal w2 = new Wal (18.6, 12, true);
System.out.println(w2);
System.out.println(Tier.liesBestand());
}}
[/CODE]
[CODE lang="java" title="Weiter gehts mit Tier"]public class Tier {
protected int alter;
protected double groesse;
protected static int bestand = 0;
public Tier() {
bestand ++;
}
public Tier(double groesse, int alter) {
this.alter = alter;
this.groesse = groesse;
bestand ++;}
public void setAlter (int alter) {
this.alter = alter;
}
public void setGroeße (double groesse) {
this.groesse = groesse;
}
public String toString() {
return "Größe: " + groesse + " Alter: " + alter;
}
public static int liesBestand() {
return bestand;
}}
[/CODE]
[CODE lang="java" title="Und die Klasse Wal"]public class Wal extends Tier {
private boolean zahnwal;
public void setGroesse (double groesse) {
if (groesse <= 18) {
this.groesse = groesse;
} else {
groesse = 18;
}
}
public Wal (double groesse, int alter, boolean Zahnwal) {
super (groesse, alter);
if (groesse <= 18) {
bestand ++;
}
}
public String toString() {
return super.toString() + " Zahnwal " + zahnwal;
}
}
[/CODE]
Jetzt habe ich ein Problem bei der Ausgabe, und zwar sollte die Ausgabe:
Größe: 2.3 Alter: 5
Größe: 5.2 Alter: 1
2
Größe: 8.6 Alter: 4 Zahnwal false
Größe: 0.0 Alter: 12 Zahnwal true
4
lauten, jedoch lautet sie:
Größe: 2.3 Alter: 5
Größe: 5.2 Alter: 1
2
Größe: 8.6 Alter: 4 Zahnwal false
Größe: 18.6 Alter: 12 Zahnwal false
5
Hat jemand eine Ahnung, wo der Fehler liegt?