Java Methode auslagern

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Methoden kann man im Sinne deiner Frage nicht „auslagern“ oder zwischenspeichern.

Methoden sind einfach Unterprogramme, die 1 … n Eingangsparameter benötigen und ggf. einen Rückgabewert zurückliefern. Dabei greifen sie ggf. auf Daten zu, die sie zuvor erzeugt haben. Im allgemeinen liegen diese Daten auf dem „Heap“ des Programms und mit Zeigern kann man die Daten auslesen oder überschreiben …

Betriebssysteme können zwar Programmteile auslagern oder genauer: auf die Festplatte zwischenspeichern, doch hier liegt die Aufgabenstellung anders. Man will den vorhandenen Arbeitsspeicher (RAM) nutzen und hat bei manchen Rechnern nicht genug Arbeitsspeicher, weswegen man auf diese zeitraubende Möglichkeit zurückgreifen muß.


Ich habe das Problem lösen können. Im Nachhinein merke ich, dass ich mich einem Java-Kenner gegenüber wahrscheinlich unpräzise ausgedrückt habe.

Die Lösung war, dass ich ein Array erstellen muss, dessen einzelnen Feldern ich die Methode zuweise, welche eine Dateneingabe verlangt und der daraus resultierende String dann per return zurückgegeben und im Feld des Arrays gespeichert wird. Sprich, es wird n ich das ganze Array übergeben, sondern immer nur einzelne Strings, die dann in ein Array gespeichert werden.

Habt mir bei der Lösung geholfen. Hab nun den "Grundgedanken" verstanden. Danke!!


chronix 
Fragesteller
 08.12.2012, 11:20

Und noch einmal Danke dafür, dass ihr ernsthaft geantwortet und meine Frage nicht zerpflückt habt, wie man es hier häufig sieht!

0

public class Klasse{

public Datentyp1 methode1(Datentyp1 param1) { Anweisungen1; return param1; }

public static void main(String[]args) { Datentyp1 var1; Klasse obj1= new Klasse(); var1=obj1.methode1(var1); Anweisung2; } }

Es ist lange her, dass ich mit Java zu tun hatte. Ich hoffe, dass es dir hilft.

Gruß

Mit Java geht das nicht direkt. aber du kannst eine private static Variable anknüpfen.

private static int[] ZwischenSpeicher;
static int[] save(int[] A){

    if(A!=null)ZwischenSpeicher=A;
    return ZwischenSpeicher;

}

Also um die pure Syntax eines Funktionsaufrufs geht's offenbar nicht.

Aus den Beiträgen unten lese ich heraus, ...

  • daß das Problem tatsächlich in der Argumentübergabe liegt.
  • Und zwar konkret in der Argumentübergabe eines Arrays.
  • Und zwar noch konkreter darin, daß das Array geändert wieder im Aufruferkontext erscheinen soll.

Ist DAS so korrekt?

Oder liegt noch was ganz anderes vor?