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
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
B 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
R Methode Rückgabe Java Basics - Anfänger-Themen 10
M Implementierung einer getNextId Methode Java Basics - Anfänger-Themen 5
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
N Mit Objekt der Superklasse auf Methode der Subklasse zugreifen Java Basics - Anfänger-Themen 6
R Signatur einer Methode in JAVA Java Basics - Anfänger-Themen 4
B LinkedList add-Methode Java Basics - Anfänger-Themen 10
S Methode von vererbter Klasse, statt die der "Mutterklasse" aufrufen Java Basics - Anfänger-Themen 28
J Rekursive swapArray Methode Java Basics - Anfänger-Themen 69
Kirby_Sike Methode aus Superklasse benutzen Java Basics - Anfänger-Themen 18
G Linked list, Methode zum Vertauschen von Elementen Java Basics - Anfänger-Themen 14
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
T Collections Methode (Knoten hinzufügen) für Graphen Java Basics - Anfänger-Themen 32
D ArrayQueue - enqueue Methode Java Basics - Anfänger-Themen 2
N Methode mit einer Arraylist Java Basics - Anfänger-Themen 106
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
J Womit kann ich diese Methode testen? Java Basics - Anfänger-Themen 5
UnknownInnocent Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
H Arraydaten aus einer anderen Methode ausgeben Java Basics - Anfänger-Themen 4
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
H Objekt mit Methode erstellen Java Basics - Anfänger-Themen 6
X Methode bei mehrfachen Aufruf kein Effekt Java Basics - Anfänger-Themen 3
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
E Was kommt in ein Objekt und was in die Main Methode? Java Basics - Anfänger-Themen 8
F Methode für Teilbarkeit durch 5 tut was anderes.... Java Basics - Anfänger-Themen 3
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
S Methode in der Klasse erstellen Java Basics - Anfänger-Themen 2
W OOP Objekt Methode Java Basics - Anfänger-Themen 9
B Array als Rückgabewert in der Methode Java Basics - Anfänger-Themen 1
E Methode soll andere Methode der selben Klasse aufrufen Java Basics - Anfänger-Themen 28
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
X Anagramm mit Strings und Methode Java Basics - Anfänger-Themen 53
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
J Methode selber schreiben Java Basics - Anfänger-Themen 5
J Ping Pong Methode mit Rekursion Java Basics - Anfänger-Themen 1
G Methode Rekursiv umschreiben Java Basics - Anfänger-Themen 8
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
B Ein Array an die Methode zurückgeben Java Basics - Anfänger-Themen 8
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
C Java String Methode Java Basics - Anfänger-Themen 6
D Wahrscheinlichkeiten mit Math.random() Methode Java Basics - Anfänger-Themen 1
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben