Hallo alle zusammen,
ich hab mal wieder eine Anfängerfrage und hoffe, ihr könnt mir helfen.
Also, wir sollen ein Taxi in Java modellieren und den Großteil der Aufgabenstellung hab ich schon fertig, nur beim letzten Punkt haperts...
Folgendes: Ich hab eine Klasse "Taxi" und eine Klasse "Human". Die Klasse Human ist fertig und funktioniert, die beinhaltet nur Vor- und Nachname eines Menschen, die getter und setter dazu und die toString()-Methode wurde überschrieben, sodass sie "Vorname Nachname" eines Menschen ausgibt. Jetzt zur Taxi-Klasse. Jedes Taxi hat einen Fahrer und maximal 4 Passagiere. Ein Taxi kann nur mit Fahrer "erschaffen" werden. Die Passagiere können einzeln einsteigen und nur zusammen aussteigen. Es gibt eine Methode "add" zum Hinzufügen der Passagiere.
Jetzt zu meinem Problem: Die Methode toString() der Taxiklasse soll so überschrieben werden, dass sie je nach Anzahl der Passagiere folgendes ausgibt: "Das ist das Taxi von (Taxifahrername). Es fahren (Name 1. Person bis Name 4. Person) mit."
Also wenn nur 2 Personen mitfahren, dann stehn da halt auch nur die Namen der 2 Personen usw.
Wie bekomme ich es also hin, dass der String, denn die toString-Methode zurückgibt sozusagen variabel ist? Ich dachte mir das iwie mit einer For-Schleife, aber weiß nicht, wie ich das realisieren soll.
Hier erstmal mein bisheriger Code der Taxi-Klasse:
Aber so wie es jetzt ist gehts ja nicht, weil der output der Schleife dann nur mit dem einen Passagier an Stelle i ist, aber nicht mit allen Passagieren.
Ich hoffe, ihr könnt mir helfen!
Vielen Dank!
Gruß GRHM93
ich hab mal wieder eine Anfängerfrage und hoffe, ihr könnt mir helfen.
Also, wir sollen ein Taxi in Java modellieren und den Großteil der Aufgabenstellung hab ich schon fertig, nur beim letzten Punkt haperts...
Folgendes: Ich hab eine Klasse "Taxi" und eine Klasse "Human". Die Klasse Human ist fertig und funktioniert, die beinhaltet nur Vor- und Nachname eines Menschen, die getter und setter dazu und die toString()-Methode wurde überschrieben, sodass sie "Vorname Nachname" eines Menschen ausgibt. Jetzt zur Taxi-Klasse. Jedes Taxi hat einen Fahrer und maximal 4 Passagiere. Ein Taxi kann nur mit Fahrer "erschaffen" werden. Die Passagiere können einzeln einsteigen und nur zusammen aussteigen. Es gibt eine Methode "add" zum Hinzufügen der Passagiere.
Jetzt zu meinem Problem: Die Methode toString() der Taxiklasse soll so überschrieben werden, dass sie je nach Anzahl der Passagiere folgendes ausgibt: "Das ist das Taxi von (Taxifahrername). Es fahren (Name 1. Person bis Name 4. Person) mit."
Also wenn nur 2 Personen mitfahren, dann stehn da halt auch nur die Namen der 2 Personen usw.
Wie bekomme ich es also hin, dass der String, denn die toString-Methode zurückgibt sozusagen variabel ist? Ich dachte mir das iwie mit einer For-Schleife, aber weiß nicht, wie ich das realisieren soll.
Hier erstmal mein bisheriger Code der Taxi-Klasse:
Java:
import java.util.ArrayList;
public class Taxi {
private String driverName;
private String driverForename;
Human driver = new Human(driverName, driverForename);
ArrayList<Human> passengers = new ArrayList<Human>();
public Taxi(Human driver) {
this.driver = driver;
}
public String getDriverName() {
String output = new String(driver.getForname() + " " + driver.getName());
return output;
}
public String add(Human x) {
String output = new String();
if (passengers.size()<4) {
passengers.add(x);
output = new String(x.toString() + " gets in.");
} else {
output = new String("We are sorry, " + x.toString() + ". The Taxi is full.");
}
System.out.println(output);
return output;
}
public String toString() {
String output = new String();
if (passengers.isEmpty()) {
output = new String("This is the taxi of " + driver.toString() + ". He takes nobody along.");
} else {
for(int i=0; i<passengers.size(); i++) {
output = new String("This is the Taxi of " + driver.toString()
+ ". He takes " + passengers.get(i).toString() + " along.");
}
}
return output;
}
}
Aber so wie es jetzt ist gehts ja nicht, weil der output der Schleife dann nur mit dem einen Passagier an Stelle i ist, aber nicht mit allen Passagieren.
Ich hoffe, ihr könnt mir helfen!
Vielen Dank!
Gruß GRHM93