Erste Aufgabenstellung: Die Operation fahren() liefert kein Funktionsergebnis. Sie „fährt“ die als Argument km vom Typ int übergebene Zahl von Kilometern. Der Kilometerstand wird angepasst und der Kraftstoffvorrat verringert sich entsprechend. Wir können natürlich nur so weit fahren, wie es der Kraftstoffvorrat im Tank zulässt.
Ich habe hier allerdings das Problem, wenn ich 300 kilometer fahren will, mit 5 Liter Verbrauch auf 100 km, werde ich 15 Liter bei den 300 km verbrauchen. Von den 30 Liter die ich momentan im Tank habe, werden die 15 abgezogen und ich habe nach der Fahrt noch 15 Liter im Tank. Bei 600 km Fahrt habe ich den Tank genau auf 0 Liter leer gefahren. Allerdings wenn ich 900 km fahre, komme ich ja nur 600 km weit, aber ich bekomme in der Methode fahren() das nicht so richtig umgesetzt.
Zweite Aufgabenstellung Die Klasse Omnibus erweitert die Klasse Auto um das private Attribut anzahlSitze, das die Anzahl der Sitzplätze eines Omnibusses angibt. Die Klasse besitzt einen allgemeinen Konstruktor, der die Attributwerte initialisiert. Die Operation toString() wandelt ein Omnibus-Objekt in eine Zeichenkette, die alle Attributwerte enthält, und liefert diese Zeichenkette als Ergebnis zurück. Implementieren Sie die Klasse Omnibus. Überlegen Sie, welche Operationen der Basisklasse Auto Sie dabei verwenden können.
Also soll ich hier die Methoden fahren() und tanken() übergeben? Oder was würde sich noch anbieten?
Ich hoffe mir kann hier jemand weiterhelfen
Ich habe eine (Ober)Klasse Auto:
eine (Unter)Klasse Omnibus:
und noch eine Main mit der ich alles testen kann:
Ich habe hier allerdings das Problem, wenn ich 300 kilometer fahren will, mit 5 Liter Verbrauch auf 100 km, werde ich 15 Liter bei den 300 km verbrauchen. Von den 30 Liter die ich momentan im Tank habe, werden die 15 abgezogen und ich habe nach der Fahrt noch 15 Liter im Tank. Bei 600 km Fahrt habe ich den Tank genau auf 0 Liter leer gefahren. Allerdings wenn ich 900 km fahre, komme ich ja nur 600 km weit, aber ich bekomme in der Methode fahren() das nicht so richtig umgesetzt.
Zweite Aufgabenstellung Die Klasse Omnibus erweitert die Klasse Auto um das private Attribut anzahlSitze, das die Anzahl der Sitzplätze eines Omnibusses angibt. Die Klasse besitzt einen allgemeinen Konstruktor, der die Attributwerte initialisiert. Die Operation toString() wandelt ein Omnibus-Objekt in eine Zeichenkette, die alle Attributwerte enthält, und liefert diese Zeichenkette als Ergebnis zurück. Implementieren Sie die Klasse Omnibus. Überlegen Sie, welche Operationen der Basisklasse Auto Sie dabei verwenden können.
Also soll ich hier die Methoden fahren() und tanken() übergeben? Oder was würde sich noch anbieten?
Ich hoffe mir kann hier jemand weiterhelfen
Ich habe eine (Ober)Klasse Auto:
Java:
class Auto{
private int kmStand;
private double verbrauch;
private double tankVolumen;
private double kraftstoffVorrat;
public Auto(int kmStand, double verbrauch, double tankVolumen, double kraftstoffVorrat){
this.kmStand=kmStand;
this.verbrauch = verbrauch;
this.tankVolumen = tankVolumen;
this.kraftstoffVorrat = kraftstoffVorrat;
}
public void info(){
System.out.println("Kilometerstand: "+kmStand);
System.out.println("Verbrauch: "+verbrauch);
}
public String toString(){
return "Kilometerstand "+kmStand+" Verbrauch "+verbrauch+" Tankvolumen "+tankVolumen+" Kraftstoffvorrat "+kraftstoffVorrat;
}
public void fahren(int km){
for(int i=1;i<=km;i++){
if((i*verbrauch)/100<=kraftstoffVorrat){
kmStand++;
}
else{
kraftstoffVorrat-=((i-1)*verbrauch)/100;
break;
}
}
kraftstoffVorrat-=(km*verbrauch)/100;
}
public void tanken(double liter){
for(int i=1; i<=liter; i++){
if(kraftstoffVorrat<tankVolumen){
kraftstoffVorrat++;
}
else{
break;
}
}
}
}
eine (Unter)Klasse Omnibus:
Java:
class Omnibus extends Auto{
private int anzahlSitze;
public Omnibus(int kmStand, double verbrauch, double tankVolumen, double kraftstoffVorrat, int anzahlSitze){
super(kmStand, verbrauch, tankVolumen, kraftstoffVorrat);
this.anzahlSitze=anzahlSitze;
}
public String toString(){
return super.toString()+""+anzahlSitze;
}
}
und noch eine Main mit der ich alles testen kann:
Java:
public class Autotest{
public static void main( String[] args){
Auto goggoMobil = new Auto(0,5.0,50,30);
System.out.println("Anfang");
System.out.println(goggoMobil.toString());
goggoMobil.fahren(300);
System.out.println("Nach der Fahrt");
System.out.println(goggoMobil.toString());
goggoMobil.tanken(45);
System.out.println("Nach dem Tanken");
System.out.println(goggoMobil.toString());
//Omnibus goggoBus = new Omnibus(0,5.0,50,30);
}
}