import gdi.util.*; // zu UEBUNG 10 Aufgabe 3 public class Auto { // Das Abschreibungsintervall wird hier fest mit 10 Jahren // angenommen. Alternativ könnte man sich dies auch als Parameter // fuer den Konstruktor vorstellen, damit kann dann fuer jedes // Auto ein eigenes Abschreibungsintervall bestimmt werden (falls // sich die steuerlichen Gegebenheiten sich ändern sollten) public static final int aIntervall = 10; public String hersteller; public String typ; public String farbe; public int leistung; public float aWert; public int aJahr; public Auto(float aw, int jahr) { // Normalerweise kaufen wir gleichartige Autos, daher belegen // wir einige Felder vor hersteller = "VW"; typ = "Polo"; farbe = "silber"; leistung = 45; aWert = aw; aJahr = jahr; } public Auto(String hersteller, String typ, String farbe, int leistung, float aWert, int aJahr) { // Dieser ueberladene Konstruktor dient dazu, beliebige Autos herzustellen this.hersteller = hersteller; this.typ = typ; this.farbe = farbe; this.leistung = leistung; this.aWert = aWert; this.aJahr = aJahr; } public float getTimedValue(int jahr) { // Assertion() gibt's erst ab Java 1.4 // Assertion.check(jahr >= this.aJahr, "Berechnung des Buchwertes zu einem Zeitpunkt, zu dem das Auto noch gar nicht existierte"); // Stattdessen: if(jahr < this.aJahr) { Out.println("Fehler: Berechnung des Buchwertes zu einem Zeitpunkt, zu dem das Auto noch gar nicht existierte"); // System.exit(-1); // Schlechter Stil. return 0.0F; // Gibt noch keinen Buchungswert. } int alter = jahr - this.aJahr; if (alter >= aIntervall) { // das Auto ist vollstaendig abgeschrieben, der Buchwert // ist 0 return 0; } else { // Berechnung des Buchwertes durch lineare Abschreibung return ((aIntervall - alter) * this.aWert) / aIntervall; } } public String toString() { return "Auto Hersteller: " + hersteller + ", Typ: " + typ + ", Farbe: " + farbe + ", Leistung: " + leistung + ", Anschaffungswert: " + aWert + ", Jahr: " + aJahr; } }