Methode implementieren

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
[CODE lang="java" highlight="8-17, 28-35"]/**
* 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 + " .";
}
}[/CODE]
 

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

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.
 

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;
    }
 

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 + " .";
    }
 
K

kneitzel

Gast
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!
 

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
 
K

kneitzel

Gast
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.
 

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

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.
 
K

kneitzel

Gast
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 ...
 

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
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
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
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
M Methode sperren bis ein Kriterium erfüllt wurde Java Basics - Anfänger-Themen 3
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
M Methoden Methode 'wiederhole' nicht gefunden (Uebersetzungsfehler) Java Basics - Anfänger-Themen 1
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
D Methode aus dem Aufrufer aufrufen Java Basics - Anfänger-Themen 1
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
D Warum kann ich hier nicht auf die Methode zugreifen? Java Basics - Anfänger-Themen 5
M generate Methode für Streams Java Basics - Anfänger-Themen 6
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
I Optionaler Parameter bei Methode, der nur optional ist? Java Basics - Anfänger-Themen 6
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
T Linked List set-Methode Java Basics - Anfänger-Themen 2
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
W Equals-Methode überschreiben bei composition Java Basics - Anfänger-Themen 20
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
V Methoden printChar Methode mit Rückgabetyp void Java Basics - Anfänger-Themen 26
F Graph Tiefensuche Methode Java Basics - Anfänger-Themen 7
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
S Methode Java Basics - Anfänger-Themen 4
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
Liroyd Methode mit Objektvariabel rechnen? Java Basics - Anfänger-Themen 6
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
D Methode um mögliche Rezepte auszugeben Java Basics - Anfänger-Themen 12
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
A Ergebnis einer Methode bei einer anderen verwenden Java Basics - Anfänger-Themen 13
L Iteratorform und Methode mit variabler Parameterzahl Java Basics - Anfänger-Themen 31
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
Csircc Rekursive Methode Stack Overflow Java Basics - Anfänger-Themen 10
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
M Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen? Java Basics - Anfänger-Themen 6
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
D mehrere Berechnungen in einer Methode Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben