oop1/Motorroller.java

78 lines
2.4 KiB
Java
Executable File

/**
* Klasse für einen Motorroller
*
* Ein Motorroller wird von einem Besitzer "besessen" und ist
* diesem per Referenz zugeordnet.
*
* @author J. Neugebauer
* @version 1.0
*/
public class Motorroller
{
// Attribute deklarieren
private int kilometerstand;
private double tankgroesse;
private double tankinhalt;
/**
* Konstruktor für Objekte der Klasse Motorroller
*/
public Motorroller( int pKilometerstand, double pTankgroesse, double pTankinhalt ) {
// Attribute initialisieren
kilometerstand = Math.max(0,pKilometerstand);
tankgroesse = pTankgroesse;
tankinhalt = pTankinhalt;
// TODO:
// - Erstellt ein Objekt mit negativem Kilometerstand und Tankgroesse.
// - Warum ist dieses Objekt nicht sinnvoll?
// - Verhinder bei der Initialisierung der Attribute die Speicherung
// unsinniger Werte.
}
public int getKilometerstand() {
return kilometerstand;
}
public double getTankgroesse() {
return tankgroesse;
}
public double getTankinhalt() {
return tankinhalt;
}
/**
* Tankt den Roller um die übergebene Menge (in Litern) auf. Dabei kann
* der Tank nicht voller werden, als durch die Tankgroesse
* festgelegt ist. Das zuviel getankte Benzin verfällt einfach.
*
* Die Methode akzeptiert auch negative Werte (das Benzin wird dann also
* abgelassen). Natürlich darf der Tankinhalt nicht negativ werden.
*/
public void tanke( double pMenge ) {
tankinhalt += pMenge; // += rechnet "tankinhalt + pMenge" und weist das Ergebnis "tankinhalt" zu
// TODO:
// - Diese Methode wurde nicht korrekt nach der
// Spezifikation (im Kommentar oben) implementiert.
// Was ist fehlerhaft?
// - Korrigiere die fehlerhafte Implementierung.
}
/**
* Fährt den Roller eine angegebene Strecke (in km). Der Roller verbraucht
* pro Kilometer 0.625 Liter Benzin. Ist im Tank nicht genug Benzin für die
* volle Strecke, dann fährt der Roller nur so weit, wie er mit dem verbleibenden
* Benzin kommt. Der Kilometerstand wird um die gefahrene Strecke hochgezählt.
*/
public void fahre( int pStrecke ) {
// TODO:
// - Diese Methode muss noch nach den Spezifikationen
// oben implementiert werden.
}
}