ich hoffe Ihr könnt mir weiter helfen. Ich bin gerade dabei eine Aufgabe zu bearbeiten und komme nicht weiter. Mein Code sieht wie folgt aus:
// TestCar ist die super Class und wird von der Main nachher aufgerufen durch
TestCar test = new TestCar();
public class TestCar
{
private Car myCar = new Car();
public TestCar()
{
initTestData();
showTestData();
}
Artist = Manufacturer
CD = Fleet
private void initTestData()
{
//-Klasse aufrufen mit Parameter
Manufacturer aManufacturer = new Manufacturer("Porsche");
// CD-Klasse aufrufen mit Parameter (hier liegt der Fehler irgendwo)
Fleet aFleet = myCar.addCar(aManufacturer, "Porsche Cayenne");
// Durch in Fleet implementierte Methode addCar() Cars hinzufügen
aFleet.addCar(aManufacturer, "Porsche 911");
}
Das ganze soll in einem Array gespeichert werden, welches in den jeweiligen Klassen vorhanden ist.
Zudem wird es mit der Methode showTestData(); ausgegeben.
Nun zeigt mir Java hier aber einen Fehler an, wenn ich myCar.addCar(...) an aFleet überreichen möchte. Java meint, ich solle die Syntax der .addCar(); Methode von Manufacturer public void addCar(...) in public Fleet addCar(...) ändern. Ich komme da aber auf keinen grünen Zweig. Ich bekomme immer nur einen Error angezeigt. Hat jemand eine Lösung hierfür? Dass ich die .addCar(...) Methode mit myCar an aFleet überrreichen kann? Wäre sehr dankbar.
Du willst deinem Fleet Objekt myCar zuweisen. Wenn du aber aFleet = myCar.addCar(...); schreibst dann willst du in aFleet den Rückgabewert von add(..) schreiben.
Der Rückgabetyp ist nun mal void.
Splitte die beiden Dinge einfach in 2 Zeilen auf und dann sollte es gehen. (Solange Fleet und myCar im Typ kompatibel sind).
Also ergänzend zu dem Code oben, habe ich bisher folgenden Code vorliegend:
// Class CD
public class CD
{ //properties and fields with getter and setter
....
// Constructor
public CD(Manufacturer manufacturers, String aCar)
{
this.manufacturers = manufacturers;
this.aCar = aCar;
}
// Class Car
{ // Properties and fields...
//Constructor
public Car() {}
// add.()-Method -> Hier weiß ich nicht, was ich für return an Code benötige bzw. gibt er mir auch einen Typfehler an, wenn ich anstatt Fleet, void nehme.
public Fleet addCar(Manufacturer manufacturers, String aCar)
{
// Das ganze muss ich in einer Array speichern.
return null;
}
Ich könnte auch folgendes machen:
public class Car {...
private ArrayList<Fleet> aFleet = new ArrayList<Fleet>();
public void addCar(Manufacturer manufacturers, String aCar)
{
aFleet.add(new Fleet(manufacturers, aCar));
}
Aber dann nimmt er in der Superclass TestCar trotzdem folgendes nicht an:
Fleet aFleet = myCar.addCar(aManufacturer, "Porsche Cayenne");