Methode implementieren

T

Tomxriddle

Mitglied
Hey, vielleicht kann und mag mir ja jemand bei folgenden Fehlern helfen.

"Die Methode driveTo der Klasse MovingCar wurde nicht implementiert. Hier soll der Standort des Fahrzeugs neu festgelegt werden, der Tankinhalt und der Kilometerstand neu berechnet werden. In der Methode refuel wurde der Datentyp falsch angegeben. Die Methode ist mit void gekennzeichnet und gibt damit keinen Wert zurück. Damit ist die return-Anweisung in der Methode überflüssig."

Ich bin nur leider ein blutiger Anfänger und würde mich über eine Erklärung für Dummies freuen :D
Java:
/**
     * Returns the car's mileage.
     *
     * @return the current mileage.
     */
    public float mileage() {
        return mileage;
    }

    /**
     * Drives the car to a new location.
     * @param location the name of the new location
     * @param distance the distance to the new location in kilometres
     */
    public void driveTo(java.lang.String location, float distance)  {
        return driveTo;
    }

    /**
     * Returns the car's fuelLevel.
     *
     * @return the current fuelLevel.
     */
    public float fuelLevel() {
        return fuelLevel;
    }
    
    /**
     * Refuel the car.
     *
     * @param litres the amount of fuel added
     */
    public void refuel (loat litres) {
        return refuel;
    }
    
    /**
     * Returns a textual representation of the object.
     *
     * @return a textual representation of the object
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "Das Auto ist ein " + type + " aus dem Jahre " + registration
                + ". Es hat die Farbe " + colour + " und ist " + mileage + " Kilometer gefahren";
    }
    public String toString() {
        return "Es verbraucht " + fuelconsumption + " Liter pro 100km und im Tank sind " + fuellevel + " Liter Kraftstoff. "
               " Es befindet sich momentan in " + location + " .";
    }
}
 
T

Tomxriddle

Mitglied
Puh, was soll man da noch erklären? Die Aufgabenstellung ist ja schon fast Java-Code. Mal eine Gegenfrage: wo hakt es denn?
1) ich dachte ich hätte die Methode drive to in Zeile 15 bereits verwendet und weiß nicht wie ich sonst ansetzen sollte. Ich weiß nicht wie der Standort des Fahrzeugs neu festgelegt wird und der Tankinhalt/Kilometerstand neu berechnet werden.
Also ob ich quasi Zeile 15 (public void driveTo(java.lang.String location, float distance) ) wiederhole und für location und distance etwas anderes einsetze.

2) Mit dem falschen Datentyp in der Methode refuel kann ich gar nichts anfangen. Also ich finde meinen Fehler nicht.

ich hoffe das ist einigermaßen verständlich
 
mihe7

mihe7

Top Contributor
zu 2) vergleiche mal, was vor litres steht und was z. B. in Zeile 15 vor distance steht.

zu 1) Zeile 15 deklariert die Methode. Ab Zeile 16 (zwischen der öffnenden und der schließenden geschweiften Klammer) muss die Implementierung rein. Dort musst Du also etwas mit den übergebenen Parametern location und distance anfangen.

Sollte Deine Klasse ein Attribut location besitzen, musst Du per this.location darauf zugreifen, während Du mit location den Parameter ansprichst. Würdest Du z. B. das location-Attribut des Objekts auf die übergebene location setzen wollen, würdest Du schreiben
Java:
this.location = location;

Und noch was: in den Zeilen 44 und 48 deklarierst Du zweimal die gleiche Methode toString(). Das ist nicht zulässig.
 
T

Tomxriddle

Mitglied
Guten Morgen, vielen Dank für deine Antwort!
Ich habe mich eben an eine Verbesserung versucht.
Könnte ich so den Standort des Fahrzeugs neu festlegen, den Tankinhalt und den Kilometerstand neu berechnen?
Java:
/**
     * Drives the car to a new location.
     * @param location the name of the new location
     * @param distance the distance to the new location in kilometres
     */
    public void driveTo(java.lang.String location, float distance)  {
        this.location = location;
        this.fuellevel = fuellevel;
        this.mileage = mileage;
        return driveTo;
    }
 
T

Tomxriddle

Mitglied
Und kann ich die Methode toString einfach zusammenfassen? Ich bekomme dann immer ein "error: not a statement"
Java:
 @Override
    public String toString() {
        return "Das Auto ist ein " + type + " aus dem Jahre " + registration
                + ". Es hat die Farbe " + colour + " und ist " + mileage + " Kilometer gefahren",
               " Es verbraucht " + fuelconsumption + " Liter pro 100km und im Tank sind " + fuellevel + " Liter Kraftstoff."
               " Es befindet sich momentan in " + location + " .";
    }
 
T

Tomxriddle

Mitglied
Nein, die Methode kompiliert ja nicht mal.
Außerdem ignorierst du den Parameter distance und die Variablen fuellevel und mileage veränderst du nicht.
ich muss ehrlich gestehen dass ich nicht weiß wie ich die Methode zum kompilieren bekomme.
ich würde mal so vermuten dass vor fuellevel und mileage ein new gehört?
tut mir wirklich leid dass ich so dumm frage
 
mihe7

mihe7

Top Contributor
ich muss ehrlich gestehen dass ich nicht weiß wie ich die Methode zum kompilieren bekomme.
ich würde mal so vermuten dass vor fuellevel und mileage ein new gehört?
tut mir wirklich leid dass ich so dumm frage
Nein, der new-Operator dient dazu, neue Objekte zu erstellen.

Deine driveTo-Methode darf kein return-Statement haben.
 
kneitzel

kneitzel

Top Contributor
Nein, der new-Operator dient dazu, neue Objekte zu erstellen.

Deine driveTo-Methode darf kein return-Statement haben.
Davon abgesehen:
Java:
        this.fuellevel = fuellevel;
        this.mileage = mileage;
macht keinen Sinn. this.fuellevel und fuellevel sind identisch.

Im Gegensatz zu z.B. location: Da gibt es eine Instanzvariable location. Da es aber auch einen Parameter location gibt, wird die Instanzvariable durch den Parameter versteckt. Durch die explizite Angabe von this. kann aber weiterhin noch auf die Instanzvariable zugegriffen werden.

Könnte ich so den Standort des Fahrzeugs neu festlegen, den Tankinhalt und den Kilometerstand neu berechnen?
Vielleicht fängst Du erst einmal an, dir genau zu überlegen, was da passieren soll. Was soll in welcher Variablen stehen?

Und dann überlegst Du Dir, was bei der Methode überhaupt passieren soll.

==> Also vergiss Java! Nur die reine Logik! Zur Not schau Dir mal ein Auto im echten Leben an.
Wenn du 500 km nach München fährst: Wo ist dann das Auto? Was steht auf dem Kilometerzähler? Was ist mit dem Tankinhalt?
Das gewählt Beispiel ist ja 1:1 in der Realität abgebildet - also die notwendige Abstraktion ist sehr gering - außer halt der massiven Vereinfachung.

Und dann kannst Du nach und nach das in Java umsetzen. Aber ehe Du irgendwas in java umsetzt: Verstehe erst einmal, was Du genau machen willst und was die exakte Erwartungshaltung ist!
 
T

Tomxriddle

Mitglied
Java:
public static void driveto(float fuellevel, float fuelconsumption) {
        return fuellevel + fuelconsumption;

wie kann ich denn ohne return sagen dass der derzeitige füllstand und der verbrauchte kraftstoff addiert werden?
ich habe echt das gefühl dass mir die basics und die logik fehlt
 
kneitzel

kneitzel

Top Contributor
Java:
public static void driveto(float fuellevel, float fuelconsumption) {
        return fuellevel + fuelconsumption;

wie kann ich denn ohne return sagen dass der derzeitige füllstand und der verbrauchte kraftstoff addiert werden?
ich habe echt das gefühl dass mir die basics und die logik fehlt
Ja, irgendwie habe ich ein falsches Auto - ich möchte auch ein Auto haben, bei dem der Füllstand beim fahren steigt ... :)

Aber Spass beiseite: Vergiss den Code! Ich will nur, dass Du Dir Gedanken über das Model machst. Also das Du überlegst, was Du da hast und wie es sich verhalten soll!

Ein Auto hat gewisse Werte. Standort, Kilometerzähler, Tankinhalt, Verbrauch ...
Nun fährst Du x Kilometer zu einem neuen Standort. Was verändert sich wie.
 
T

Tomxriddle

Mitglied
habs jetzt auch bemerkt^^ ich habe mich total verrannt :D

total plump gesehen würde ich einfach sagen dass sich der kilometerzöhler um die gefahrenen Kilometer erhöht und der Tankinhalt um den Verbrauch fällt.

ich habe noch ganze Zahlen in meiner allgemeinen Aufgabenstellung gegeben, die müssen aber nicht in die Klasse oder?

Ich könnte es auch verstehen wenn mir zu helfen hoffnungslos wäre :D
 
mihe7

mihe7

Top Contributor
Ich könnte es auch verstehen wenn mir zu helfen hoffnungslos wäre :D
Das kann man so nicht sagen, das Problem ist einfach, dass ein Forum keinen Java-Kurs ersetzen kann.

total plump gesehen würde ich einfach sagen dass sich der kilometerzöhler um die gefahrenen Kilometer erhöht und der Tankinhalt um den Verbrauch fällt.
Ja, so einfach kann es sein :)

ich habe noch ganze Zahlen in meiner allgemeinen Aufgabenstellung gegeben, die müssen aber nicht in die Klasse oder?
Das hängt von der Aufgabenstellung ab, die wir nicht kennen. Vermutlich sind das Werte, die zum Test dienen. Dann gehören sie nicht in die Klasse. Wenn da aber steht, Du sollst für den Verbrauch eine Konstante mit 6.4 Liter/100 km verwenden, dann sieht die Sache anders aus.
 
kneitzel

kneitzel

Top Contributor
So lange Du es lernen willst, dürfte es nicht hoffnungslos sein.

Die Aufgabe aber genau prüfen. Wenn da noch der Ort gespeichert ist, dann verändert der sich natürlich auch, d.h. nach der Fahrt nach München ist das Auto auch in München. Da aber - so wie @mihe7 schon meinte - die genaue Aufgabe prüfen.

Wichtig ist mir, dass Du Dir klar machst, was Du wo dann speicherst. Das kann also sein:
Auto:
- Hat einen Ort der einfach als Text angegeben wird "München", "Frankfurt/Main", ...
- Hat einen Kilometerzähler, der als ganze Zahl angegeben wird.
- Hat einen Tankinhalt, der als Zahl mit Nachkommastellen angegeben wird.
- Hat einen Verbrauch pro 100km der mit Nachkommastellen angegeben wird.

Das Auto kann gefahren werden. Dazu braucht man: Das Ziel (als Text) und die Kilometer bis dahin
-> Der neue Ort des Fahrzeugs wird dann zu dem Ziel.
-> Der Kilometerzähler erhöht sich um die gefahrenen Kilometer.
-> Der Tankinhalt sinkt um die gefahrene Strecke / 100 * Verbrauch.

Also diese Ausführlichkeit muss sein. Evtl. willst Du ja auch eine Fehlerbehandlung machen - Wenn der Sprit im Tank nicht ausreicht, dann machst Du nichts. Da dann auch die Schritte im Detail formulieren für Dich. Was genau machst Du? Also sowas wie: Notwendiges Benzin ist das mal das durch jenes ... (Genaue Formel!). Dann Vergleich: Tankinhalt ist größer wie berechnetes notwendiges Benzin? Dann .....
Das klingt doof, aber genau das ermöglicht dir dann die 1:1 Umsetzung. Und Du bekommst deutlich weniger Probleme, denn ohne diese genauen Details baust Du dies in Java auf. Und damit schreibst Du etwas, das Du (noch) nicht fließend lesen/verstehen kannst.

Später reichen weniger Details - aber am Anfang ist das extrem wichtig!

Also die 1:1 Implementation kann man angehen:
1. Für jede Eigenschaft musst Du Dir einen passenden Namen und einen passenden Typ überlegen (Ist evtl. bereits geschehen - ggf ist auch meine Beschreibung nicht passend zu der Aufgabe ... )
2. Ein Auto muss erstellt werden können -> Konstruktor. Der gibt entweder sinnvolle Werte vor, oder es müssen Werte als Parameter übergeben werden.
3. Die Methode: Die Parameter sind definiert -> Typ und Name überlegen (soweit nicht vorgegeben), dann die Rechnungen durchführen und fertig.

Aber wichtig ist: Nach den genauen Überlegungen sollte die Implementierung nur noch ein 1:1 übersetzen in Java Code sein.
So es da Probleme gibt: Einfach wieder fragen. Evtl. hast Du aber auch irgendwelche Unterlagen, in denen das steht. Aber zur Not erläutern wir die paar Befehle, die Du hier nun brauchst ...
 
T

Tomxriddle

Mitglied
hey, tut mir leid dass ich mich erst jetzt melde. ich habe heute wieder an der Aufgabe gesessen und sie beendet. auf jeden fall wollte ich mich noch für die ganze Hilfe bedanken! das ist nicht selbstverständlich und so eine hilfsbereitschaft erlebt man nicht mehr oft.

alles Gute:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
C Zyklisch verkette Liste - Pop() methode implementieren Java Basics - Anfänger-Themen 2
T Equal Methode implementieren Java Basics - Anfänger-Themen 22
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
G Erbklasse verpflichten Methode zu implementieren Java Basics - Anfänger-Themen 3
T Methode Implementieren Java Basics - Anfänger-Themen 15
T Methoden Wie compareTo() Methode implementieren? Java Basics - Anfänger-Themen 9
J Methode verstehen Java Basics - Anfänger-Themen 3
L Methode in setText() setzen Java Basics - Anfänger-Themen 6
B eine methode erstellen Java Basics - Anfänger-Themen 7
D Methode Java Basics - Anfänger-Themen 7
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
amelie123456 Geschwindigkeit der Methode bewegeDich eines Objekts ändern Java Basics - Anfänger-Themen 2
M mehrere Rückgabenwerte aus Methode Java Basics - Anfänger-Themen 7
Stargirlxo Iterator + Methode Java Basics - Anfänger-Themen 10
G Rekursive Methode mit 2 Aufrufen Java Basics - Anfänger-Themen 1
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
G return 1 + methode Java Basics - Anfänger-Themen 4
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
T getAttribut in einer Methode aufrufen Java Basics - Anfänger-Themen 8
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
N Groß- und Kleinschreibung bei Java: void Methode Java Basics - Anfänger-Themen 1
BorussiaMG1900 Implementation einer Methode Java Basics - Anfänger-Themen 1
H Kürzere Scan Methode Java Basics - Anfänger-Themen 7
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
M Rekursive Java-Methode Java Basics - Anfänger-Themen 13
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
B Methoden warum macht die Methode nicht das was ich erwarte? Java Basics - Anfänger-Themen 2
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
O Instanzattribut per Getter Methode zuweisbar, warum? Java Basics - Anfänger-Themen 3
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
M negate Methode Java Basics - Anfänger-Themen 13
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
S HashMap contains() Methode Java Basics - Anfänger-Themen 1
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
X compareTo Methode wird ignoriert Java Basics - Anfänger-Themen 7
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
P Methode trim() ohne StringBuilder Java Basics - Anfänger-Themen 1
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
O BiPredicate in einer forEach Methode Java Basics - Anfänger-Themen 10
B Klassen Abstrake Klasse und Template Methode Java Basics - Anfänger-Themen 4
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
G Java charAt Methode Java Basics - Anfänger-Themen 10
G main Methode Java Basics - Anfänger-Themen 5
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
G Java equals() Methode Java Basics - Anfänger-Themen 9
I Greedy Methode Methoden nutzen Java Basics - Anfänger-Themen 3
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3
V Collections Methode in der Methode aufrufen Java Basics - Anfänger-Themen 2
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
Z Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String Java Basics - Anfänger-Themen 14
B Get / Set - Methode für verschiedene Entities? (generisch) Java Basics - Anfänger-Themen 21
J main methode Java Basics - Anfänger-Themen 1
C Methode Seiten tauschen eines erstellten Rechtecks mit Seite A und B Java Basics - Anfänger-Themen 9
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
J Methoden set Methode array Java Basics - Anfänger-Themen 2
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
S Wann Methode abstract? Java Basics - Anfänger-Themen 10
L Objekt an Methode übergeben Java Basics - Anfänger-Themen 4
H Rekursiv Methode ausführen bei Kindern Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Anzeige

Neue Themen


Oben