forked from IF-LK-2020/oop1
Auto-Layout angewandt
This commit is contained in:
parent
50498ad534
commit
81edcd58fe
166
Besitzer.java
166
Besitzer.java
|
@ -10,103 +10,101 @@
|
||||||
*/
|
*/
|
||||||
public class Besitzer {
|
public class Besitzer {
|
||||||
|
|
||||||
// Objektvariablen deklarieren
|
// Objektvariablen deklarieren
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private double geld;
|
private double geld;
|
||||||
|
|
||||||
private boolean fuehrerschein;
|
private boolean fuehrerschein;
|
||||||
|
|
||||||
private Motorroller meinRoller;
|
private Motorroller meinRoller;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Konstruktor für Objekte der Klasse Besitzer
|
* Konstruktor für Objekte der Klasse Besitzer
|
||||||
*/
|
*/
|
||||||
public Besitzer(String pName, double pGeld, boolean pFuehrerschein, Motorroller pMeinRoller) {
|
public Besitzer(String pName, double pGeld, boolean pFuehrerschein, Motorroller pMeinRoller) {
|
||||||
// Objektvariablen initialisieren
|
// Objektvariablen initialisieren
|
||||||
name = pName;
|
name = pName;
|
||||||
geld = pGeld;
|
geld = pGeld;
|
||||||
fuehrerschein = pFuehrerschein;
|
fuehrerschein = pFuehrerschein;
|
||||||
meinRoller = pMeinRoller;
|
meinRoller = pMeinRoller;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getGeld() {
|
public double getGeld() {
|
||||||
return geld;
|
return geld;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hatFuehrerschein() {
|
public boolean hatFuehrerschein() {
|
||||||
return fuehrerschein;
|
return fuehrerschein;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gibt die Referenz auf das Objekt vom Typ "Motorroller" zurück.
|
* Gibt die Referenz auf das Objekt vom Typ "Motorroller" zurück.
|
||||||
*/
|
*/
|
||||||
public Motorroller getMeinenRoller() {
|
public Motorroller getMeinenRoller() {
|
||||||
return meinRoller;
|
return meinRoller;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ändert die Motorroller-Referenz auf ein neues Objekt vom Typ
|
* Ändert die Motorroller-Referenz auf ein neues Objekt vom Typ
|
||||||
* "Motorroller".
|
* "Motorroller".
|
||||||
*/
|
*/
|
||||||
public void setMeinenRoller( Motorroller pNeuerRoller ) {
|
public void setMeinenRoller( Motorroller pNeuerRoller ) {
|
||||||
meinRoller = pNeuerRoller;
|
meinRoller = pNeuerRoller;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void taschengeldBekommen( double pBetrag ) {
|
public void taschengeldBekommen( double pBetrag ) {
|
||||||
if( pBetrag > 0 ) {
|
if( pBetrag > 0 ) {
|
||||||
geld = geld + pBetrag;
|
geld = geld + pBetrag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tankt den zugeordneten Roller um die angegebene Menge (in Litern) auf.
|
* Tankt den zugeordneten Roller um die angegebene Menge (in Litern) auf.
|
||||||
* Dabei wird zunächst geprüft wie viel Platz noch im Tank ist
|
* Dabei wird zunächst geprüft wie viel Platz noch im Tank ist
|
||||||
* und nur die Menge getankt, die auch noch in den Tank passt.
|
* und nur die Menge getankt, die auch noch in den Tank passt.
|
||||||
* Für die getankte Menge müssen pro Liter 1.5 Euro gezahlt werden, die
|
* Für die getankte Menge müssen pro Liter 1.5 Euro gezahlt werden, die
|
||||||
* vom vorhandenen Geld abgezogen werden.
|
* vom vorhandenen Geld abgezogen werden.
|
||||||
*/
|
*/
|
||||||
public void tankeRoller( double pMenge ) {
|
public void tankeRoller( double pMenge ) {
|
||||||
meinRoller.tanke(pMenge);
|
meinRoller.tanke(pMenge);
|
||||||
geld = geld - 1.5*pMenge;
|
geld = geld - 1.5*pMenge;
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// - Teste die Methode mit verschiedenen Eingaben. Probier
|
// - Teste die Methode mit verschiedenen Eingaben. Probier
|
||||||
// auch Werte aus, die eigentlich nicht logisch sind (z.B.
|
// auch Werte aus, die eigentlich nicht logisch sind (z.B.
|
||||||
// negative Mengen).
|
// negative Mengen).
|
||||||
// - Diese Methode wurde nicht korrekt nach der
|
// - Diese Methode wurde nicht korrekt nach der
|
||||||
// Spezifikation (im Kommentar oben) implementiert.
|
// Spezifikation (im Kommentar oben) implementiert.
|
||||||
// Welche Fehler können auftreten?
|
// Welche Fehler können auftreten?
|
||||||
// - Korrigiere so viele Fehler wie möglich.
|
// - Korrigiere so viele Fehler wie möglich.
|
||||||
// - Bei dieser Methode ist auch die Spezifikation fehlerhaft.
|
// - Bei dieser Methode ist auch die Spezifikation fehlerhaft.
|
||||||
// Welche möglichen Objektzustände werden dort nicht
|
// Welche möglichen Objektzustände werden dort nicht
|
||||||
// beachtet?
|
// beachtet?
|
||||||
// - Ergänze den Kommentar zu einer möglichst exakten Beschreibung.
|
// - Ergänze den Kommentar zu einer möglichst exakten Beschreibung.
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fährt den Roller um die angegeben Strecke (in km). Der Besitzer
|
* Fährt den Roller um die angegeben Strecke (in km). Der Besitzer
|
||||||
* prüft zunächst, ob genug Benzin im Tank ist für die Strecke, und fährt
|
* prüft zunächst, ob genug Benzin im Tank ist für die Strecke, und fährt
|
||||||
* nur dann los. Er prüft dies, indem er ungefähr den Verbrauch des Rollers
|
* nur dann los. Er prüft dies, indem er ungefähr den Verbrauch des Rollers
|
||||||
* abschätzt.
|
* abschätzt.
|
||||||
*/
|
*/
|
||||||
public void fahreRoller( int pStrecke ) {
|
public void fahreRoller( int pStrecke ) {
|
||||||
if( meinRoller.getTankinhalt() >= pStrecke ) {
|
if( meinRoller.getTankinhalt() >= pStrecke ) {
|
||||||
meinRoller.fahre(pStrecke);
|
meinRoller.fahre(pStrecke);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
// - Der Besitzer schätzt nur grob den Verbrauch seines Rollers ab.
|
||||||
// TODO:
|
// Wie macht er das?
|
||||||
// - Der Besitzer schätzt nur grob den Verbrauch seines Rollers ab.
|
// - Wie könnten die Klassn sinnvoll ergänzt werden, um eine genauere
|
||||||
// Wie macht er das?
|
// Rechnung pro Roller zu ermöglichen?
|
||||||
// - Wie könnten die Klassn sinnvoll ergänzt werden, um eine genauere
|
// - Implementiere eure Idee.
|
||||||
// Rechnung pro Roller zu ermöglichen?
|
}
|
||||||
// - Implementiere eure Idee.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,7 @@ public class Motorroller
|
||||||
/**
|
/**
|
||||||
* Konstruktor für Objekte der Klasse Motorroller
|
* Konstruktor für Objekte der Klasse Motorroller
|
||||||
*/
|
*/
|
||||||
public Motorroller( int pKilometerstand, double pTankgroesse, double pTankinhalt )
|
public Motorroller( int pKilometerstand, double pTankgroesse, double pTankinhalt ) {
|
||||||
{
|
|
||||||
// Attribute initialisieren
|
// Attribute initialisieren
|
||||||
kilometerstand = Math.max(0,pKilometerstand);
|
kilometerstand = Math.max(0,pKilometerstand);
|
||||||
tankgroesse = pTankgroesse;
|
tankgroesse = pTankgroesse;
|
||||||
|
@ -34,18 +33,15 @@ public class Motorroller
|
||||||
// unsinniger Werte.
|
// unsinniger Werte.
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getKilometerstand()
|
public int getKilometerstand() {
|
||||||
{
|
|
||||||
return kilometerstand;
|
return kilometerstand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getTankgroesse()
|
public double getTankgroesse() {
|
||||||
{
|
|
||||||
return tankgroesse;
|
return tankgroesse;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getTankinhalt()
|
public double getTankinhalt() {
|
||||||
{
|
|
||||||
return tankinhalt;
|
return tankinhalt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,9 +49,11 @@ public class Motorroller
|
||||||
* Tankt den Roller um die übergebene Menge (in Litern) auf. Dabei kann
|
* Tankt den Roller um die übergebene Menge (in Litern) auf. Dabei kann
|
||||||
* der Tank nicht voller werden, als durch die Tankgroesse
|
* der Tank nicht voller werden, als durch die Tankgroesse
|
||||||
* festgelegt ist. Das zuviel getankte Benzin verfällt einfach.
|
* 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 )
|
public void tanke( double pMenge ) {
|
||||||
{
|
|
||||||
tankinhalt += pMenge; // += rechnet "tankinhalt + pMenge" und weist das Ergebnis "tankinhalt" zu
|
tankinhalt += pMenge; // += rechnet "tankinhalt + pMenge" und weist das Ergebnis "tankinhalt" zu
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
|
@ -71,8 +69,7 @@ public class Motorroller
|
||||||
* volle Strecke, dann fährt der Roller nur so weit, wie er mit dem verbleibenden
|
* 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.
|
* Benzin kommt. Der Kilometerstand wird um die gefahrene Strecke hochgezählt.
|
||||||
*/
|
*/
|
||||||
public void fahre( int pStrecke )
|
public void fahre( int pStrecke ) {
|
||||||
{
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// - Diese Methode muss noch nach den Spezifikationen
|
// - Diese Methode muss noch nach den Spezifikationen
|
||||||
// oben implementiert werden.
|
// oben implementiert werden.
|
||||||
|
|
Loading…
Reference in New Issue