Ich habe folgenden Code in einer Klasse:
Und in einer weiteren Klasse dies:
Ich war der meinung, dass der Wert von saldo bei jeder Neuinstanzierung "0" wäre. Tatsächlich wird aber jeweils der Wert der letzten Instanz übernommen (also saldo hat bei konto2 hat am Anfang den Wert, der bei konto1 mit getSaldo() ausgegeben wurde.
Warum? Was mache ich falsch?
Java:
package konto;
public class konto {
static float saldo = 0;
static float zinssatz = 0.01f;
public void einzahlen(float einzahlung) {
saldo += einzahlung;
System.out.println("Ihr Saldo beträgt zur Zeit " + saldo + " Franken.");
}
public void verzinsen(int tage) {
float zins = 0;
if(saldo <= 5000) {
zins = saldo * (zinssatz / 365) * tage;
}
else if(saldo <= 50000) {
zins = saldo * ((zinssatz / 2) / 365) * tage;
}
else {
zins = 0;
}
saldo += zins;
System.out.println("Sie erhalten " + zins + " Franken Zins!");
}
public void getSaldo() {
System.out.println("Ihr aktueller Saldo beträgt " + saldo + " Franken.");
System.out.println();
}
}
Und in einer weiteren Klasse dies:
Java:
package konto;
public class test_konto {
public static void main(String[] args) {
testKonten();
}
public static void testKonten() {
konto konto1 = new konto();
konto1.einzahlen(4980); // saldo knapp unter erstem Grenzwert
konto1.verzinsen(365);
konto1.getSaldo();
konto konto2 = new konto();
konto2.einzahlen(5000); // saldo = erster Grenzwert
konto2.verzinsen(365);
konto2.getSaldo();
konto2.einzahlen(100); // saldo knapp über erstem Grenzwert
konto2.verzinsen(365);
konto2.getSaldo();
konto konto3 = new konto();
konto3.einzahlen(49956); // saldo knapp unter zweitem Grenzwert
konto3.verzinsen(365);
konto3.getSaldo();
konto konto4 = new konto();
konto4.einzahlen(50000); // saldo = zweiter Grenzwert
konto4.verzinsen(365);
konto4.getSaldo();
konto4.einzahlen(100); // saldo knapp über erstem Grenzwert
konto4.verzinsen(365);
konto4.getSaldo();
// zur vereinfachung wird immer über 365 Tage verzinst
}
}
Ich war der meinung, dass der Wert von saldo bei jeder Neuinstanzierung "0" wäre. Tatsächlich wird aber jeweils der Wert der letzten Instanz übernommen (also saldo hat bei konto2 hat am Anfang den Wert, der bei konto1 mit getSaldo() ausgegeben wurde.
Warum? Was mache ich falsch?