Hallo, ich würde Sie bitten mal schnell zu prüfen, ob ich diese Anforderungen richtig im Code ungesetzt habe und falls nicht was ich wie verbessern kann
Klasse:
public abstract class PoweredBike implements Bike
{
int maxRange, restRange;
public PoweredBike(int max_Range)
{
if (max_Range < 0)
{
throw new IllegalArgumentException(
" Die Maximalweite darf nie negativ sein");
}
else
{
max_Range = maxRange;
max_Range = restRange;
}
}
public int range()
{
if (restRange < 0)
{
throw new IllegalArgumentException(
"ihre Restreichweite kann nie kleiner 0 sein");
}
else
{
return this.restRange;
}
}
public PoweredBike drive(int km)
{
if (km < 0)
{
throw new IllegalArgumentException(" Unzulässigter Sachverhalt");
}
else
{
restRange = restRange - km;
}
return null;
}
public void fuelUp()
{
restRange = maxRange;
}
public String toString()
{
return "PoweredBike [maxRange=" + maxRange + ", restRange=" + restRange
+ "]";
}
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + maxRange;
result = prime * result + restRange;
return result;
}
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PoweredBike other = (PoweredBike) obj;
if (maxRange != other.maxRange)
return false;
if (restRange != other.restRange)
return false;
return true;
}
}
Interface
public interface Bike
{
/**
* Strecke in km, die das Fahrrad faehrt. * @param km Strecke in km,
* positiv. * @return dieses Fahrrad.
*/
Bike drive(int km);
/**
* Restliche Reichweite, die das Fahrrad noch fahren kann. * @return in der
* Default Implementierung unendlich weit.
*/
default int range()
{
return Integer.MAX_VALUE;
}
}
Anforderungen:
- int maxRange (positiv)für die maximale Reichweite dieses Fahrrads mit einer Motorladung
- int restRange (nicht negativ, nicht mehr als die maximale Reichweite)die verbleibende Reichweite, nachdem das Fahrrad schon eine gewisse Strecke gefahren ist.Ein Konstruktor erhält maxRange als Parameter. Werfen Sie im Falle einer negativen Angabe eineIllegalArgumentException.
Die Klasse PoweredBike definiert folgende Methoden:
- range liefert die verbleibende Reichweite.
- drive reduziert die verbleibende Reichweite abhängig von der gefahrenen km Zahl, aber nicht unter 0. Wirft imFalle einer negativen km-Angabe eine IllegalArgumentException.
- fuelUp setzt die verbleibende Reichweite wieder auf den Startwert.
- toString liefert zusätzlich zu den Attributen den dynamischen Typ.
- equals und hashCode: Zwei PoweredBike sind gleich, wenn die maximale Reichweite und die verbleibende Reichweite übereinstimmen.