Onlinestate
Spiele-Kenner/in
- Mitglied seit
- 31.08.2002
- Beiträge
- 3.042
- Reaktionspunkte
- 102
AW: Statische Methoden
Die Methode ausgabe habe ich zu der Funktion toString umfunktioniert, weil jede Klasse die Methode toString hat und diese bei einer Standardausgabe automatisch aufgerufen wird. Das vereinfacht nur den Umgang mit der Ausgabe.
Ich hab für diese Vereinfachung eine Methode simplify eingefügt. Diese wird nach jeder Operation (Initialisierung, Addieren, Umrechnen) automatisch ausgeführt. Wenn du per Hand Werte ändertst (zB: Fl1.Qua = 4500), musst du auch per Hand Fl1.simplify() ausführen.frogi am 07.11.2008 11:30 schrieb:Die Umrechnungen sind:
1 Acker = 144 Quadratrute
1 Morgen = 4 Acker
1 Großhufe = 100 Morgen
Die Methode ausgabe habe ich zu der Funktion toString umfunktioniert, weil jede Klasse die Methode toString hat und diese bei einer Standardausgabe automatisch aufgerufen wird. Das vereinfacht nur den Umgang mit der Ausgabe.
public class RoemischeFlaeche {
public int Qua, Ack, Mor, Gro;
public RoemischeFlaeche(int qua, int ack, int mor, int gro) {
this.Qua = qua;
this.Ack = ack;
this.Mor = mor;
this.Gro = gro;
this.simplify();
}
public void umrechnen(int n) {
this.Qua = n % 1000;
n = (n - Qua) / 1000;
this.Ack = n % 10;
n = (n - Ack) / 10;
this.Mor = n % 100;
n = (n - Mor) / 100;
this.Gro = n;
this.simplify();
}
public void addiereFlaechen(RoemischeFlaeche Fl2) {
this.Qua += Fl2.Qua;
this.Ack += Fl2.Ack;
this.Mor += Fl2.Mor;
this.Gro += Fl2.Gro;
this.simplify();
}
public void simplify() {
this.Ack += (this.Qua / 144);
this.Qua %= 144;
this.Mor += (this.Ack / 4);
this.Ack %= 4;
this.Gro += (this.Mor / 100);
this.Mor %= 100;
}
public String toString() {
return "Großhufe: " + Gro + "\n" +
"Morgen: " + Mor + "\n" +
"Acker: " + Ack + "\n" +
"Quadratrute: " + Qua + "\n";
}
}
public class RoemischeRechnung {
public RoemischeRechnung() {
RoemischeFlaeche Fl1 = new RoemischeFlaeche(0, 0, 0, 0);
RoemischeFlaeche Fl2 = new RoemischeFlaeche(0, 0, 0, 0);
int flaeche1 = 25953125, flaeche2 = 74040019;
Fl1.umrechnen(flaeche1);
Fl2.umrechnen(flaeche2);
Fl1.addiereFlaechen(Fl2);
System.out.println(Fl1);
}
public static void main(String[] args) {
new RoemischeRechnung();
}
}