Hallo,
ich möchte gerne einen "Fahrer" erstellen, der "Fahrer" besitzt einen Heimatort und einen Tagesablauf.
In der Klasse "Fahrer" wird der Fahrer mit seinem Heimatort erstellt:
Der Tagesablauf wird in der Klasse Tagesablauf erstellt und dieser besteht aus einem "Start", einem Zustand (ob das Auto: Fahrt, Parkt,..) und einem Zweck (z.B.Arbeit)
Zustand und Zweck werden über Enum-Klasse generiert.
Die Klasse hab ich wie folgt aufgebaut:
Beides lasse ich in der Tagesberechnung starten:
Und diese Tagesberechnung wird im Programm aufgerufen:
Problem habe ich mit der ToString Methode. Über:
erhalte ich folgende Ausgabe: [LaendlicheRegionKleinstaedtischerDoerflicherRaumnull] [[]2023-09-11T14:15nullfahrsimulation.Wegezweck@511baa65] (Wäre für den Start erstmal richtig)
Über die ToString Methode:
erhalte ich die Ausgabe: [LaendlicheRegionKleinstaedtischerDoerflicherRaumnull] (die Zeitscheibe (15 minuten eines Tages, werden hier nicht ausgegeben, da diese laut debuggen "null" ist. Verstehe leider nicht wieso. Könnt ihr mir bitte weiterhelfen? Hoffe ich habe es halbwegs nachvollziehbar beschrieben, falls nicht (bin doch schon etwas vertieft in dem Thema, gerne nachfragen!)
ich möchte gerne einen "Fahrer" erstellen, der "Fahrer" besitzt einen Heimatort und einen Tagesablauf.
In der Klasse "Fahrer" wird der Fahrer mit seinem Heimatort erstellt:
Java:
package fahrsimulation;
import java.time.LocalDateTime;
import fahrsimulation.Heimatort.Heimatorte;
public class Fahrer {
Heimatorte heimatort;
static int ZEITSCHRITT = 15;
public LocalDateTime start = LocalDateTime.of(2023, 9, 11, 14, 00, 0);
LocalDateTime end = LocalDateTime.of(2023, 9, 12, 14, 00, 00);
Tagesablauf zeitscheibe = new Tagesablauf(start, AutoZustand.FAHREN, Wegezweck.Wegezwecke.Arbeit);
public Fahrer(Heimatorte heimatort, Tagesablauf zeitscheibe) {
this.heimatort = heimatort;
this.zeitscheibe = zeitscheibe;
}
void starteBerechnung() {
Heimatort heimatorte = new Heimatort(null);
heimatort = heimatorte.heimatortberechnung();
}
@Override
public String toString() {
return "[" + heimatort + zeitscheibe + "]";
}
}
Der Tagesablauf wird in der Klasse Tagesablauf erstellt und dieser besteht aus einem "Start", einem Zustand (ob das Auto: Fahrt, Parkt,..) und einem Zweck (z.B.Arbeit)
Zustand und Zweck werden über Enum-Klasse generiert.
Die Klasse hab ich wie folgt aufgebaut:
Code:
package fahrsimulation;
import java.time.LocalDateTime;
import java.util.ArrayList;
import fahrsimulation.Wegezweck.Wegezwecke;
public class Tagesablauf {
public ArrayList<LocalDateTime> zeitscheiben = new ArrayList<>();
String zeit2;
Wegezwecke wegezwecke;
LocalDateTime start;
public static int ZEITSCHRITT = 15;
Wegezweck wegezweck = new Wegezweck(null);
public AutoZustand autoZustand;
public Tagesablauf(LocalDateTime start, AutoZustand fahren, Wegezwecke arbeit) {
this.start = start;
this.autoZustand = fahren;
this.wegezweck.wegezweck = wegezwecke;
}
public LocalDateTime erhoehungZeitscheibe() {
start = start.plusMinutes(ZEITSCHRITT);
if (autoZustand == AutoZustand.FAHREN) {
wegezwecke = wegezweck.wegezweckberechnung();
} else {
wegezwecke = null;
}
return start;
}
@Override
public String toString() {
return "[" + zeitscheiben + start + autoZustand + wegezweck + "]";
}
Beides lasse ich in der Tagesberechnung starten:
Code:
public class Tagesberechnung {
void starteBerechnung() {
int anzahlFahrer = 1;
int anzahlZeitscheiben = 3;
LocalDateTime start = LocalDateTime.of(2023, 9, 11, 14, 00, 0);
Fahrer[] fahrer = new Fahrer[anzahlFahrer];
Tagesablauf[] zeitscheibe = new Tagesablauf[anzahlZeitscheiben];
for (int j = 0; j < fahrer.length; j++) {
fahrer[j] = new Fahrer(null, zeitscheibe[j]);
fahrer[j].starteBerechnung();
for (int k = 0; k < zeitscheibe.length; k++) {
zeitscheibe[k] = new Tagesablauf(start.plusMinutes(k * Tagesablauf.ZEITSCHRITT), null, null);
zeitscheibe[k].erhoehungZeitscheibe();
System.out.println(fahrer[j] + " " + zeitscheibe[k]);
System.out.println(fahrer[j].toString());
}
}
}
}
Und diese Tagesberechnung wird im Programm aufgerufen:
Code:
public class Programm {
public static void main(String[] args) {
Tagesberechnung tagesberechnung = new Tagesberechnung();
tagesberechnung.starteBerechnung();
}
}
Problem habe ich mit der ToString Methode. Über:
Code:
System.out.println(fahrer[j] + " " + zeitscheibe[k]);
Über die ToString Methode:
Code:
System.out.println(fahrer[j].toString());