Kann man ein Array von einer Unterklasse ins Hauptprogramm übergeben?

  • Themenstarter Themenstarter Davicito
  • Beginndatum Beginndatum
das ist ja schön und gut zu wissen wie ein Array-abruf funktioniert, aber das wollte ich doch auch garnicht von Euch wissen.
Ich weiss doch selber wie ich auf die Elemente einer Array zugreifen kann. Und nichts anderes wird mir unter diesem Link gezeigt!
Ich möchte wissen, wie ich das bewerkstelligen kann, ein Array von einer anderen Klasse übergebenbekomme, so, dass ich in der HAUPTKLASSE aus, auf die Elemente meines Array zugriefen kann.
 
Verstehe, also ganz normal mit return wie zB.:

...
public int[] getFuel(BufferedReader Data) throws IOException
{
inst[] messwert_x = new int[100];
..........
return messwert_x;
}

aber wie greife ich dann auf die einzelnen Elemente im Hauptprogramm zu, da es sich ja um ein Array andelt?

mess.getFuel(holeData); //Übergabe ans Unterp.
System.out.println(mess.getFuel(holeData)); // Rückgabe als ausgabe betrachtet. Kann nur ein element sehen. Wie kann ich jetzt alle elemente sehen?

Kann ja sein, dass ich das falsch verstanden hab, aber hier hast du das doch schon umgesetzt, oder nicht?
Deine letzte Frage hier war, wie du auf die Elemente zugreifen kannst. Danach hast du das neue Thema angelegt.

Gruß

Sascha
 
ok das war ein Missverstäntis meinerseits, das hat nicht funktioniert!!
Deswegen bin ich ja auch so verzweifelt, weil ich nicht weiss woran das liegt.
 
Was hat denn da nicht funktioniert?
Sonst gibt es da keine großartig anderen Möglichkeiten.

Gruß

Sascha
 
einfach nur diese Zeile:
System.out.println(mess.test.getholeMessDat(messerte_x));

die wird rot makiert und ich hab sonst keine Ahnung warum er auf das Array - messwerte_x, aus der Klasse holeMessDat, nicht zu greifen möchte.
habe ich da einen Syntax-Fehler?

Referenz-Objekt ist deklariert und verweisst auf die Klasse holeMessDat
holeMessDat mess = new holeMessDat();

der Klasse holeMessDat wird zur Laufzeit ein BufferedReader-Objekt namens messData übergeben.
mess.test(messData);

dann ist in der Klasse selber 2 int-Arrays deklariert welche messwerte_x und messwerte_y heißen welche mit Zahlenwerten aus einer Textdateigefüllt werden:

public class holeMessDat
{
public int[] test(BufferedReader messData) throws IOException
{
.....
int[] messwerte_x = new int[10000];
int[] messwerte_y = new int[10000];
.....
}
return messwerte_x;
}
Zum Schluss wird - probehalber erstmal nur das Array messwerte_x an das hauptprogramm zurückgegeben.
das Problem ist jetzt allerding der Zugriff aus dem Hauptprogramm wie in der 2. Zeile oben dargestellt ist.
 
Du hast schon wieder keine Tags genutzt.
Java:
mess.test.getholeMessDat(messerte_x)
Heißt die Methode nicht test?
Also eher so?
Java:
mess.test(messData);

Ich weiß nicht ob du dich hier vertippt hast, aber das return gehört in die Methode
Java:
public class holeMessDat 
{	
public int[] test(BufferedReader messData) throws IOException
{	
..... 
int[] messwerte_x = new int[10000];
int[] messwerte_y = new int[10000];
.....
return messwerte_x;
} 

}


Gruß

Sascha
 
ok bei dem Return habe ich mich in der Tat vertippt. daran liegt es jedoch nicht

wenn ich

System.out.println(mess.test(messData));

zeigt er mir keinen Fehler an. aber er giebt mir zu laufzeit auch keine Zahlen auf der konsole aus (nichts passiert)
 
Was gibt er denn aus?
Du gibst ja das Array aus und nicht die Stellen des Arrays. Da musst du auf die einzelnen Stellen des Arrays zugreifen mit einer Schleife.

Gruß

Sascha
 
das habe ich mir schon gedacht, dass du mich das fragen wirst.

ich habe mal versucht mit einer For-Schleife zuarbeiten, doch dann habe ich nur feheler.
Hier mal ein Beispiel:

for(int i=0; 1<10 ;i++){
System.out.println(mess.test(messData));
}

jetzt weiss ich aber nicht sorecht wo ist da die eckigen Klammern setzen muss. Hinter mess?
und wie ich im Schleifenkopf - als Abbruchsbedingung- die Länge des Arrays angeben kann.
 
Zurück