Ich habe da mehrere Klassen und in einer ist die Main Methode usw. , so und in einer Klasse habe ich folgendes Problem.
irgendwie bekomme ich das nicht hin, dass der startindex oder endindex ausserhalb der If anweisung gesetzt wird. wie bekomme ich das hin?
ich will den dann in einer anderen Klasse weiter benutzen.
Code:
public class Wegfinder {
private String startHs;
private String endHs;
private int linie ;
private String [] datenLinie9 = {"Holstentor","Kohlmarkt","Sandstrasse","Fegefeuer","Stadthalle"};
private int startindex;
private int endindex;
public Wegfinder () {
}
public void setStartHs (String startHs) {
this.startHs = startHs;
}
public void setEndHs (String endHs) {
this.endHs = endHs;
}
public int berechneStrecke () {
for (int i = 0; i<datenLinie9.length;i++) {
if (startHs.equals (datenLinie9[i]) ){
this.startindex = i;
System.out.println (this.startindex);
for (int x = 0; x<datenLinie9.length;x++){
if (endHs.equals (datenLinie9[x]) ){
linie=9;
this.endindex = x;
System.out.println (this.endindex);
}
}
}
}
return linie;
}
public int getStartindex(){
System.out.println (this.startindex);
return this.startindex;
}
public int getEndindex(){
System.out.println (this.endindex);
return this.endindex;
}
}
wo das problem liegt weiss ich auch nicht eigentlich müsste es funktionieren, er mäckert auch nicht bei der initialisierung.
aber wenn ich den wert hier
Code:
public int getStartindex(){
System.out.println (this.startindex);
return this.startindex;
}
public int getEndindex(){
System.out.println (this.endindex);
return this.endindex;
}
Hi,
in welcher Reihenfolge rufste die Methoden den auf? So wie der Code geschrieben ist, sind die einen oder anderen Variblen zur Laufzeit noch nicht initialisiert.
Dh. solltest Du zB.: startHs im Konstruktor initialisieren und das Ganze
mit try/catch absichern(wenn zB ein ungültiger String fuer startHs uebergeben wird)...
Ansonsten, in dieser Reihenfolge fkt. Deine Klassen und Methoden:
Code:
Wegfinder f = new Wegfinder();
f.setStartHs("Sandstrasse");
f.setEndHs("Stadthalle");
f.berechneStrecke();
System.out.print("f.getStartindex()=="+f.getStartindex());
System.out.print("f.getEndindex()=="+f.getEndindex());
Ich rufe die Methoden in der reinfolge auf wie du es geschrieben hast @ chilli.
aber ich bekomme den wert von meinem startindex dennoch nicht.
er ist 0 .
Mache ich allerdings ein println inerhalb der if abfrage zeigt er mir den richtigen wert!