Erneut eine Frage zu Rückgabewerten

Lestas89

Bekanntes Mitglied
Gestern hatte ich bereits einen Thread eröffnet weil ich eine Frage zu Methoden hatte. So langsam komm ich der Sache etwas näher ...

z.B. das folgende Programm:

Java:
public class MethodExample3 {

  public int method3() {
  int a;
  a = 3 + 4;
  return a;
  }
 
  public static void main(String[] args) {
  MethodExample3 me3 = new MethodExample3();
  int b = me3.method3();
 
  System.out.println(b);
  }
}

Was bewirkt nun die method3?

In der Methode wird die Integervariable a definiert und dann zurückgegeben in die Mainmethode mit return a. Ist das soweit richtig?

Was aber nun in der Mainmethode passiert versteh ich nicht. Könnte mir jemand erklären, was dort genau definiert wird? Und was bedeutet die Aussage bei int b?
Also int b = me3.method3();

Ich hoffe ihr könnt mir helfen. (Sorry für diese Anfängerfragen)
 
Zuletzt bearbeitet von einem Moderator:
Es wird ein Objekt vom Typ MethodExample3 erstellt.
In der nächsten Zeile wird dann die Methode method3 vom Objekt me3 aufgerufen, das davon zurückgebene Ergebnis wird dann der Variable b zugewiesen.

Ich würde dir wirklich empfehlen dir ein Anfängerbuch/tutorial anzuschauen, denn dort werden all diese Sachen erklärt. Ein gutes und kostenloses ist dieses: http://openbook.rheinwerk-verlag.de/javainsel/
 
Die Rückgabewerte sind dazu da, auf Werte/Ergebnisse außerhalb einer Methode zuzugreifen, wenn man nicht mit Objektvariablen arbeiten will, oder die Berechnung in einer anderen Klasse stattfinden.

Gleich vorweggreifend: NEIN man kann nicht zwei oder mehr Rückgabewerte von einer Methode bekommen
AUßER: man hat ein Array oder Listen, ... oder Objekte, von Objekten aber auch nur eins oder ein Objekt[]
 
Danke für deine Hilfe!

Manchmal stehen nach der Methode in den Klammern auch bestimmte Parameter.
Was hat es damit genau auf sich?

z.B:
Code:
static void printMax(double a,double b){
  if(a>b)
    System.out.println(a);
  else
    System.out.println(b);}
 
Na das heisst ganz einfach, der Aufrufer dieser Methode gibt beim Aufruf zwei double-Werte mit. In der Methode werden diese dann unter den Namen a und b angesprochen !
 
Vielen Dank für die Hilfen.
Eine Frage hab ich noch:

Ich hätte doch 3+4 auch ganz normal nur mit der main methode rechnen können. Wieso macht man so einen Umweg?
 
In deinem Fall ja.
Komplexere Programme haben allerdings deutlich mehr Zeilen, sodass man aus verschiedenen Gründen Teile des Codes auslagert (Übersichtlichkeit, Wiederverwendbarkeit,...)
 
In Verbindung mit Methoden seh ich auch öfter static double oder final int. Was genau bedeuten diese Präfixe im Zusammenhang mit den Datentypen?

Hätte ich im unteren Beispiel auch public int verwenden können?

Code:
class MaximumBestimmung {
static int maximum (int x, int y){
if (x > y)
return x;
else
return y;
}
public static void main (String args[]) {
int a = 3, b = 10;
int m;
m = maximum(a,b);
System.out.println("Maximum ist "+m);
}
}
 
Static ist kein Präfix für die Datentypen, sondern ein eigenständiger Modifikator.
Er gibt an, ob eine Methode oder Eigenschaft an die Klasse oder die Instanzen einer Klasse gebunden ist.

Public int würde in dem Fall nicht funktionieren, da du aus einer statischen Methode heraus nicht auf Instanzvariablen zugreifen kannst.
 
In Verbindung mit Methoden seh ich auch öfter static double oder final int. Was genau bedeuten diese Präfixe im Zusammenhang mit den Datentypen?

Wie schon weiter oben angesprochen, werden all diese Sachen in jedem Java Buch (welches auch an Anfänger gerichtet sind) erklärt. Solltest du mit einer Erklärung nicht klarkommen oder sie nicht ganz verstehen dann helfen wir dir hier sehr gerne weiter. Auch kannst du dir einen Lernpartner in diesem Forum suchen.
 

Neue Themen


Zurück
Oben