Zwei ganze Zahlen mit einer Methode zurückgeben

  • Themenstarter Themenstarter aliv3
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
A

aliv3

Gast
Hallo, ich habe eine Frage und zwar was ist bei der Frage richtig:
Wenn wir mit einer Methode zwei ganze Zahlen zurückgeben müssen, können wir verwenden
(knifflig!)
a) ein Objekt als Parameter
b) ein Objekt als Rückgabewert
c) zwei Rückgabewerte
d) zwei Parameter

Also ich bin für a), da man dann in der Methode die Variablen des Objekts ändern kann und da man ein Objekt als Parameter übergibt ändern sich die Werte nicht nur in der Methode selbst sondern auch allgemein und somit hat man zwei Zahl "zurückgegeben" oder gibts da noch ne nicht all zu schwere Möglichkeit?? Rekursion wurde noch nicht behandelt, sondern nur die Grundlagen der OOP ohne Vererbung und die einfachsten Sachen wie Methoden, Schleifen usw.

Danke für die Hilfe schon mal im vorraus!
 
klar, aber b) dann auch auf jeden Fall. c) sicher nicht, und
bei d) fehlt die Info ob die zwei Parameter auch Objekte sein duerfen (nach den anderen Antworten scheinbar nicht)
 
a) auch als Antwortmöglichkeit zuzulassen ist im Sinne des Fragestellers
schon ein bischen hinterfotzig. 😎
 
Wie soll das denn mit b) gehen??? Kannst du das bitte näher erklären?
 
ein Result-Objekt... z.B. gibt es in der Java Api die Klasse Point, die genau zwei Werte enthält, auf die man zugreifen kann, z.B. sowas wäre dann drin:
Code:
public Point makeSomething() {
   //mache irgendwas spannendes mit zwei Variablen x und y
   return new Point(x, y);
}

//Zugriff z.B. in der Main:
Point p = makeSomething();
int x = p.x;
int y = p.y;

Man kann sich natürlich auch eigene Klassen als "Hüllenklasse" ausdenken, die diese zwei "Rückgabewerte" speichert.
 
Code:
class MyObject {
    int ichBinDerEineWert;
    String ichBinDerAndereWert;
}
...
MyObject gibZweiWerteZurück {
    MyObject rück = new MyObject();
    rück.ichBinDerEineWert = 42
    rück.ichBinDerAndereWert = "Erna ist doof";
    return rück;
}
 
hab da ne Frage:

wenn ich ein Objekt:
Code:
 Integer i = new Integer(1);

an eine Funktion übergebe, was ist das dann für ein Ding - denn es verhält sich nicht wie ein herkömliches Objekt, wo nur eine Referenz übergeben wird und somit das ursprüngliche Objekt verändert wird. Dachte in java ist so gut wie alles ein objekt (abgesehen von datentypen wie int).

Wo liegt da mein Denkfehler?
 
Es ist schon ein ganz normales Objekt und verhält sich auch wie alle anderen.

Der einzige Unterschied ist, daß es immutable gemacht wurde also unveränderbar.

Das ist allerdings keine Java-Besonderheit. Es ist einfach so, daß der eigentlich
int, der in dem Integer steckt, nicht public definiert ist und es auch keinen
setter gibt (void setInt(int theNewValue {...}).

Dieses Verhalten kannst du in all deinen Klassen nachbilden.
 
Leroy42 hat gesagt.:
Es ist schon ein ganz normales Objekt und verhält sich auch wie alle anderen.

Der einzige Unterschied ist, daß es immutable gemacht wurde also unveränderbar.

Das ist allerdings keine Java-Besonderheit. Es ist einfach so, daß der eigentlich
int, der in dem Integer steckt, nicht public definiert ist und es auch keinen
setter gibt (void setInt(int theNewValue {...}).

Dieses Verhalten kannst du in all deinen Klassen nachbilden.

Danke für die Antwort - wieder was dazugelernt 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben