PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BlueJ Fehleranalyse



l!skh
31.12.2008, 12:01
Hi @ all,
lerne seit gestern Java mit BlueJ nach dem Tutorial von http://www.u-helmich.de/inf/BlueJ/kurs11/index.html.
Das aktuelle kleine Projekt ist ein Auto... http://www.u-helmich.de/inf/BlueJ/kurs11/seiten/seite04.html.


Hier mal der aktuelle Code, nur Attribute und Konstruktoren...


public class Auto
{
//Attribute
private double tankvolumen, benzinstand;
private double verbrauch, kmstand;



//Konstruktoren
public Auto()
{
tankvolumen = 70.0; // l
benzinstand = 50.0; // l
verbrauch = 8.6; // l/100km
kmstand =77000;// km

}

public Auto (double tv, double bst, double verb, double km)
{
tankvolumen = tv;
benzinstand = bst;
verbrauch = verb;
kmstand = km;
}


}




Jetzt zum Prioblem bei den Methoden, das ist Übung 4.1, ca. auf der Hälfte der Seite.






public void tanken(double liter)
{
benzinstand = benzinstand + liter;

}

public void anzeigen ()
{
System.out.println("Tankvolumen = "+tankvolumen+" Liter");
System.out.println("Benzinstand = "+benzinstand+" Liter");
System.out.println("Verbrauch = "+verbrauch +" Liter/100km");
System.out.println("km-Stand = "+kmstand +"km");
}




Diese zwei Fragen kann ich nicht beantworten...
a) Warum ist die Methode noch fehlerhaft; was könnte man besser machen? (1 Punkt)
b) Verbessern Sie die Methode entsprechend! (2 Punkte)




Dann zu meinen fragen:

1) zur methode anzeigen
was bedeuten die "+" vor kmstand , also bei System.out.println("km-Stand = "+kmstand +"km"); :?:
Ich hätte geschrieben "System.out.pintln("km-Stand" = "kmstand + km")




2) zur methode Tanken

Die stimmt doch nicht, denn x = x + y ist ja auch nicht ganz richtig :-)
[x = benzinstand / y = liter]



Deshalb würde ich das so schreiben:

public void tanken(double liter, double newbenzinstand)
{
newbenzinstand = benzinstand + liter;

}

---> Beim testen fällt mir jedoch dann auf, dann muss man ja den Endbenzinstand auch eingeben ?!



LG
Danke!

l!skh
31.12.2008, 13:04
Super!! Danke, hast PM.

Wobei es dann so auch ohne eingabe geht, denn Tankvoluemn und Benzinstand wird beim Erstellen des Autos ja schon angegeben.



public double volltanken() {
return tankvolumen - benzinstand;
}




___________________________________
Da kommt mir noch eine frage:

Was ist der Unterschied zwischen "return" und "System.out.println". ?

Beim googeln kam nur raus, dass return die letzte Anweisung ist, danach kommt nichts mehr.
Und beide geben Werte aus, doch wo ist der Unterschied?