Rückgabemöglichkeit außer return ?

Status
Nicht offen für weitere Antworten.

manuel774

Mitglied
Hey,

also folgendes Problem :
ich würd gern ne funktion außerhalb von der main schreiben welche etwas berechnen soll und die errechneten Werte wieder zurückgibt (in C++ ging das mein ich mit einem "&" vor der Variablendeklaration im Funktionskopf).

Das blöde ist jetzt nur:
retur.n kann nur einen Wert zurückgeben.
Habe mir auch schon gedacht das ganze in ein Array zu schreiben oder die Variablen einfach global zu deklarieren aber das ist ja auch nicht gerade die ordentlichste Art oder?

Wär cool wenn jemand was wüsste...
Danke
 
S

SlaterB

Gast
du kannst das Array zurückgeben oder irgendein anderes Objekt, welche mehrere Daten enthält,

ein ganz zauberhaft automatischer Ausgleich zwischen mehreren einzelnen lokal definieren Variablen beim Aufrufer + Aufrufenden ist aber nicht drin, nein
 

manuel774

Mitglied
Es gibt also keine Möglichkeit das ich z.B. aus der Funktion 3Werte in einzelnen Variablen zurückgebe ?
Also ich mein außer Sie in ein Array zu stecken...
 

Ariol

Top Contributor
Du kannst dir auch eine kleine Klasse erstellen, die beide Werte speichern kann.

Bsp.:

Code:
class MyReturns
{
     private int i;
     private String s;

     public MyReturns(int i, String s)
     {
          this.i = i;
          this.s = s;
     }

     public int getI()
     {
          return i;
     }

     public String getS()
     {
          return s;
     }
}

Und in deiner Methode gibst du dann ein Objekt der Klasse zurück:

Code:
public MyReturns getValues()
{
    int i = berechneIntWert();
    String s = erstelleString();
    return new MyReturns(i,s);
}
 

anfänger15

Bekanntes Mitglied
Du kannst dir eine eigene Klasse schreiben, die im Konstuktor 3 Werte übergeben bekommt und methoden besitzt mit denen du die Werte abfragen kannst.


//edit: ariol war schneler
 

manuel774

Mitglied
Ich wünscht wir würden wieder C++ machen... das war einfach...

Öhm naja ich werds versuchen zu verstehen wenn ich en kopf morgen mal frei hab... mach Java doch auch erst seit eier Woche^^

Trotzdem Danke
Ich denk das wird mir weiterhelfen wenn ichs verstehe... muss mich halt erstmal n bissel reinlesen
 

Verjigorm

Top Contributor
manuel774 hat gesagt.:
Es gibt also keine Möglichkeit das ich z.B. aus der Funktion 3Werte in einzelnen Variablen zurückgebe ?
Also ich mein außer Sie in ein Array zu stecken...

also ich frage mich grade ob ich ganz auf dem Holzweg bin, aber das geht doch wunderbar wenn man sich einfach nen paar setXY()-Methoden baut und diese dann in der Funktion aufruft...
So mach ich das, wenn ich nicht grad alles in nen Array stopfen möchte
 

manuel774

Mitglied
Da hättsch das Problem ja garnicht....
Denn da gibts ja Referenzparameter :cool:

Also ich mein die "&" in der Variablendeklaration im Funktionskopf... dadurch wird ja die darauf folgende Variable automatisch an die aufrufende Funktion wieder zurückgegeben...
 
M

maki

Gast
Naja, zugegeben, "haargenau das gleiche" ist es nicht.

In Java kann man nur Referenzen auf Objekte übergeben (ausser bei primitiven Datentypen), ist allerdings "call by value", da wir ja in Java Objekte ausschliesslich über Referenzen ansprechen, funktioniert dann so ähnlich wie & in C++.

Allerdings gibt es auch in C++ sog. immutables, da hättest du dann wieder das gleiche Problem ;)

Das mit dem & in C++ einfach so Details einer Klasse veröffentlicht werden ist auch nicht immer unproblematisch.
 

tfa

Top Contributor
ms hat gesagt.:
Es ging dir doch darum mehr als nur einen Wert zurückzugeben.
Wie soll das in C++ gehen?
Er meint wohl, dass in den Methoden die per Ref-Parameter übergeben Argumente verändert werden ("Funktionen mit "Seiteneffekten"). So kriegt man praktisch mehr Objekte aus der Methode heraus, als durch den Rückgabewert. Sowas finde ich allerdings sehr hässlich. Bei einem anständigen OO-Design sollte das nicht nötig sein. Aber bei C++ ist das ja nicht immer gegeben.
 

byte

Top Contributor
Kannst auch ein Callback Objekt übergeben, dann kann die Methode auch void sein. ;)

Edit:
Code:
class A {
  private String foo;
  private int bar;

  private void doThis() {
    B b = new B();
    b.doThat(new SyncCallback() {
      public void onFinish(String result1, int result2) {
        foo = result1;
        bar = result2;
      }
    });
  }

}
class B {
  public void doThat(SyncCallback callback) {
    String result1 = "hi there";
    int result2 = 666;
    callback.onFinish(result1, result2);
  }
}

interface SyncCallback {
  public void onFinish(String result1, int result2);
}
 

tfa

Top Contributor
In der Methode können auch neue Objekte erzeugt werden, die dann über die verbogenen Ref-Parameter quasi zurückgegeben werden.
 

tfa

Top Contributor
Leider hab ich jetzt kein Compiler zu Hand, um das auszuprobieren. Aber Call-by-Referenz
unter C++ findest Du hier erklärt.
Die Beispiele da sind zwar mit primitiven ints. Aber mit Objekten (die u.U. in der Methode neu angelegt werden),
sollte das genauso klappen.
Kann ich aber nicht beschwören. Ich hab seit Jahren (Gottseidank!) nichts mehr in C++ gemacht.
 

Leroy42

Top Contributor
Die Referenzen in C++ (oder Pascal oder Algol68) sind mir
schon klar; mir ist nur nicht bekannt, daß etwas über
verborgene Referenzen zurückgegeben werden kann. :shock:

Aber egal; interessiert ja niemanden. :cool:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Dateien löschen, außer! Java Basics - Anfänger-Themen 6
megachucky Woher bekomme ich Java (außer aus dem netz) ? Java Basics - Anfänger-Themen 12
W if Bedingung mit "Außer" Java Basics - Anfänger-Themen 4
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
I Return Array Java Basics - Anfänger-Themen 4
Q return Ausgabe Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
G return 1 + methode Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
J Missing Return Statement Java Basics - Anfänger-Themen 11
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
C ArrayList mit return zurückgeben Java Basics - Anfänger-Themen 13
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
K Return in Schleife Java Basics - Anfänger-Themen 4
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S Missing return Java Basics - Anfänger-Themen 4
das_leon return message Java Basics - Anfänger-Themen 2
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
R return: cannot find symbol Java Basics - Anfänger-Themen 2
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
K ArrayList ausgeben mit return Java Basics - Anfänger-Themen 6
M Return statement Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
M Abbrechen Methode ohne return Java Basics - Anfänger-Themen 3
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
L OOP Return Java Basics - Anfänger-Themen 10
L Erste Schritte Frage zu 'return' Java Basics - Anfänger-Themen 4
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
D Methoden Return-Wert wird nicht ausgegeben Java Basics - Anfänger-Themen 3
F Return-Anweisung Java Basics - Anfänger-Themen 2
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
B OOP Methode mit Array mit return verlassen Java Basics - Anfänger-Themen 8
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
G return-wert für eine Methode Java Basics - Anfänger-Themen 1
B Methoden Probleme mit for Schleife und return Java Basics - Anfänger-Themen 5
Q Tastatureingabe direkt nach Eingabe (ohne zwischenzeitliches "Return" o.Ä ) weiterverwenden Java Basics - Anfänger-Themen 1
B Variablen Problem mit return String[] Java Basics - Anfänger-Themen 4
O Per return Run Methode beenden Java Basics - Anfänger-Themen 3
M Arrays als return Value? Java Basics - Anfänger-Themen 2
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
Z Methoden return nullprüfung Java Basics - Anfänger-Themen 7
O Java return in Schleife Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
K Erste Schritte "return" Problem bei Rekursion Java Basics - Anfänger-Themen 8
R If Verschachtelung und return; Java Basics - Anfänger-Themen 4
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
S Methoden Return Java Basics - Anfänger-Themen 8
T return-Wert verwenden? Java Basics - Anfänger-Themen 12
T Return eines Int-Werts? Java Basics - Anfänger-Themen 3
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
R Return in If Java Basics - Anfänger-Themen 10
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
G array return methode Java Basics - Anfänger-Themen 10
L return wird nicht erkannt? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
M Variablen return-array klonen Java Basics - Anfänger-Themen 3
A Methode mit Array als Param --> return Array --> Fehler Java Basics - Anfänger-Themen 3
S Zeichen einlesen ohne Return? Java Basics - Anfänger-Themen 19
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
S probleme mit der return anweisung Java Basics - Anfänger-Themen 20
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
V Erste Schritte Return ohne Argument Java Basics - Anfänger-Themen 6
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
S Frage zu Vererbung und return. Java Basics - Anfänger-Themen 4
R return (mehrere floats) Java Basics - Anfänger-Themen 11
E Return String Java Basics - Anfänger-Themen 10
P Methoden Methode ohne return abbrechen? Java Basics - Anfänger-Themen 12
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
M Problem mit boolean. Return nicht erkannt Java Basics - Anfänger-Themen 10
P Return aus For-Schleife Java Basics - Anfänger-Themen 19
S return in GUI ? Java Basics - Anfänger-Themen 12
M This method must return a result of type int Java Basics - Anfänger-Themen 13
F Erste Schritte return (char)toUnsignedInt(value) Java Basics - Anfänger-Themen 2
A Falscher Return-Wert Java Basics - Anfänger-Themen 2
M missing return statement?! Java Basics - Anfänger-Themen 4
L Return Fragen Java Basics - Anfänger-Themen 4
R Nach return() der aufgerufenen Methode wird aufrufende Methode nicht weiter ausgeführt Java Basics - Anfänger-Themen 14
I Null als return obwohl datensatz existiert Java Basics - Anfänger-Themen 12
S this method must return a result of type double Java Basics - Anfänger-Themen 2
V Problem mit return Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben