Array als Funktions-Rückgabewert?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Array als Funktions-Rückgabewert?

    Hiho!
    Ich stehe gerade vor einem ulkigen Problem...
    Wie kann ich denn aus einer array-Methode das Array am Bildschirm ausgeben lassen? z.B.:

    Quellcode

    1. public class Auto implements Fahrzeug{
    2. public int[] meinArray(int wert){
    3. int a=wert;
    4. int Array[]=new int[5];
    5. Array[0]=a;
    6. Array[1]=a+1;
    7. Array[2]=a+2;
    8. Array[3]=a+5;
    9. Array[4]=a+9;
    10. return Array; <-- Funzt nicht, gibt mir nur die Speicheradresse des Arrays zurück.
    11. }
    12. }
    Alles anzeigen


    Auszug aus der Main-Methode:
    Fahrzeug BMW=new Auto();
    System.out.println(BMW.meinArray(5)); <-- so hab ichs gedacht... funzt aber net.

    Das dargestellte Beispiel ist nicht mein konkretes Bsp, sondern sehr vereinfacht. Innerhalb der Array-Methode werden in meinem Problem-Beispiel den einzelnen Array-Feldern Return-Werte aus anderen Funktionen übergeben etc... das ganze Programm zu posten, würde zu weit führen.
    Das Interface Auto enthält die entsprechende Methode und in den übergebenen Parametern liegt der Fehler sicherlich auch nicht. Die habe ich alle Separat überprüft und anzeigen lassen. Die Werte stimmen alle, lediglich die Anzeige von dem Array in der Main-Methode schmeisst mir nicht wie erwartet die konkreten Zahlenwerte aufgelistet raus, sondern nur die Speicheradresse des Arrays.

    Hat jemand ne Ahnung, woran das liegt?
    Ich bin mittlerweile echt ratlos, hab alles mögliche probiert. Verzeiht mir, wenn's trivial ist... ich seh' den Fehler leider einfach nicht. :( :roll:
    \\.-'´´ Alw4ys k33p on burn!ng, 'cAu$e if you are buRnT out y0ur l!fe sURreNd3Rs deAth! ``'-.//
  • hi

    System.out will einen String als Parameter haben
    entweder du baust dir in der meinArray() Methode einen String zusammen

    oder du speicherst das array in einer private variablen und gibst einfach das Auto aus
    (falls deine klasse auto nicht noch weitere ausgaben haben muss)

    Quellcode

    1. System.out.println(BMW);


    dazu musst du nur die Methode toString() überschreiben
    anwendung siehst du z.B. hier http://www.easy-coding.de/quadrat-interface,-comparable,-cloneable-t968.html
    aber auch in weiteren programmen hier im board
  • Jau danke für den Tip. Ich hab jetzt selbst auch schon eine alternative Lösung zum Ausgeben der Werte gefunden.
    Hab einfach ne verschachtelte for-switch-Schleife gebaut mit nem System.out.println drin und jeden Arraywert nach der Zuweisung direkt ausgeben lassen.

    D.h. beim Aufruf der []Methode in der Main werden alle Werte wie gewünscht ausgegeben... lediglich der return-Wert macht mir noch kummer...
    ich hab da jetzt einfach mal return null; rein gebaut...
    Damit compiliert zumindest das Programm einwandfrei. Nur, dass halt anstelle der Speicheradresse des ersten Array-Elements nun immer null erscheint.
    \\.-'´´ Alw4ys k33p on burn!ng, 'cAu$e if you are buRnT out y0ur l!fe sURreNd3Rs deAth! ``'-.//
  • y0y0, ich hab das Problem gelöst.
    Ich musste eine []int -Funktion aus einem Interface implementieren, das war das Problem. Deswegen konnte ich keine void-Funktion draus machen.
    Die Lösung war ganz einfach, ich habe einfach als return-Wert am Ende doch das Array zurückgegeben und in der Main in einem zweiten Array zwischengespeichert.
    Dieses Array hab ich dann in ne for-Schleife mit System.out.println eingebaut und jeden Wert einzeln ausspucken lassen! =)
    Einfach, aber man muss halt erst mal draufkommen... ich saß da echt auf der Leitung!
    Danke für den Support.
    :)
    \\.-'´´ Alw4ys k33p on burn!ng, 'cAu$e if you are buRnT out y0ur l!fe sURreNd3Rs deAth! ``'-.//