# Fragen zu Methoden (void/return), Übergabe von Parametern



## Mr.Pink! (29. Mrz 2011)

Hallo verehrte Java-Gemeinde,

ich hätte ein paar Fragen:

1. wie funktioniert die Rückgabe einer Methode, die NICHT void ist, wenn ich einen Wert/eine Variable mit return zurückgebe (wie binde ich diesen Wert/diese Variable in der Methode, der nun etwas übergeben wird, ein?)?

2. warum kann ich mit einer void-Methode trotzdem Werte übergeben?

3. Ich würde gerne in folgendem Programm, die Variablen "Materialkosten" und "Lohn" aus ihren jeweiligen Methoden in einer main-Methode ausgeben lassen, wie kann ich dies ermöglichen?


```
import java.util.Scanner;

public class Nr6 {
	public static int Lohnabrechnung () {
		Scanner eingabe = new Scanner (System.in);
		
		System.out.println ("Guten Tag, Herr Tupid." + "\n" + "\n" + "Bitte geben Sie die Anzahl ihrer Arbeitsstunden ein.");
		int Stundenzahl = eingabe.nextInt();
		int Lohn;
		
		if (Stundenzahl <= 40) {
		Lohn = Stundenzahl * 50;
		} else { 
		Lohn = 40 * 50 + ((Stundenzahl - 40) * 100);
		}
		
		return Lohn;
		
		System.out.println ("Ihr Wochenlohn beträgt: " + Lohn + " €.");
	}
	
	public static int Materialabrechnung () {
		Scanner eingabe = new Scanner (System.in);
		
		System.out.println ("Herr Tupid, " + "\n" + "bitte geben Sie die Anzahl der verlegten Kabel an (Meter).");
		int Kabelmeter = eingabe.nextInt();
		int Materialkosten = ((Kabelmeter / 500) * 1000) + ((Kabelmeter % 500) * 3);
		
		return Materialkosten;
		
		System.out.println ("Ihre Materialkosten betragen: " + Materialkosten + " €. ");
	}
	
}
```

Über eure Antworten freut sich ein gespanntes Java-Bit;-)


----------



## XHelp (29. Mrz 2011)

Mr.Pink! hat gesagt.:


> 1. wie funktioniert die Rückgabe einer Methode, die NICHT void ist, wenn ich einen Wert/eine Variable mit return zurückgebe (wie binde ich diesen Wert/diese Variable in der Methode, der nun etwas übergeben wird, ein?)?


Verstehe ich nicht so ganz... du gibst etwas zurück und dieses etwas wird eben zurückgegeben. :bahnhof: In Zeile 8 verwendest du ja bereits die Rückgabe einer Methode (nextInt)


> 2. warum kann ich mit einer void-Methode trotzdem Werte übergeben?


Weil Rückgabetyp und Parameter nichts gemeinsam haben.


> 3. Ich würde gerne in folgendem Programm, die Variablen "Materialkosten" und "Lohn" aus ihren jeweiligen Methoden in einer main-Methode ausgeben lassen, wie kann ich dies ermöglichen?


So wie du es in Zeile 8 machst, nur dass du eben die richtige Methode aufrufst und an der richtigen Stelle.

Nach dem return darf übrigens kein Code stehen. Es ist ja auch ziemlich nutzlos, da die return-Anweisung die Ausführung der Methode beendet.


----------



## Final_Striker (29. Mrz 2011)

```
public static void main(String[] args) {
		int x = 4;
		int y = 9;
		int erg = berechne(x, y);
		
		System.out.println("Ergebnis: " + erg);
	}
	
	public static int berechne(int a, int b){
		int erg = a + b;
		return erg;
	}
```


----------



## ARadauer (29. Mrz 2011)

```
return Lohn; //hier ist die Methode vorbei, return beendet die methode
        //das wird nie ausgeführt und wird nicht compilieren...
        System.out.println ("Ihr Wochenlohn beträgt: " + Lohn + " €.");
    }
```


----------

