Datentypen Welcher Datentyp

gasda

Mitglied
Hallo

ich habe gerade die Grundlagen hintermir und fang an das Buch "Java übungen" durchzuarbeiten.

Bei dem folgenden code kann ich aber den Ausdruck "int ergebnis=dividiere(40,5);" nicht verstehen.

Das vor dem =Zeichen ist ein integer ok und was ist dann dividiere(40,5)?

String, Array - ich kann das einfach nicht nachvollziehen. Ich versteh es einfach nicht.

Java:
public class Test 
{
	
	public static void main(String[] args) 
	{
		int ergebnis = dividiere (40, 5);   //versteh ich einfach nicht
		System.out.println("ergebins = " + ergebnis);
	}
	
	public static int dividiere (int divident, int divisor)
	{
		
		int retWert = 0;
		if (divisor > 0) {
			retWert = divident / divisor;
		}
		return retWert;
	}
}
 
Auch ein int. Man erkennt das an der Deklaration:
[JAVA=10]
public static int dividiere (int divident, int divisor)
[/code]

heißt übersetzt: öffentlich-sichtbare statische Methode, die ein "int" zurückliefert, "dividiere" heißt und folgende Parameter erwartet...
 
Zuletzt bearbeitet:
Vielleicht lohnt es sich dazu auch mal, sich genauer in Methoden einzuarbeiten.
Hier mal ein auf die schnelle gegoogelter Link Guido Krger - JAVA 1.1 lernen - Kapitel 7 Methoden

XHelp hat dir ja schon eine Kurzfassung dazu gegeben.

Als genauere erklärung was dieses dividiere(40,5) macht:

Java sucht, ob der Begriff dividiere irgendwo deklariert (also festgelegt wurde).

Die Definition dafür ist diese Zeile:
Java:
public static int dividiere (int divident, int divisor)

public static dürfte dich an dem Stand noch nicht interessieren.
Interessant ist das int - das hat XHelp ja schon erklärt.
das in den () sind Werte, mit denen die Methode arbeitet.
Auf das Beispiel bezogen:
Die Methode erwartet, dass sie mit 2 int-werten aufgerufen wird. Diese erhalten 2 Namen (divident und divisor - es könnte auch peter und hannes als Name eingegeben werden - das ist egal).
Mit diesen Namen kann in der Methode dann gearbeitet werden.
In dem Fall macht die Methode das hier:

Java:
int retWert = 0;
        if (divisor > 0) {
            retWert = divident / divisor;
        }
sie erzeugt sich also noch einen eigenen int-Wert Namens retWert, der auf 0 gesetzt wird.
Dann wird überprüft ob der divisor >0 ist (um division durch 0 zu vermeiden) und setzt retWert auf den divident durch divisor.
Dann muss die Methode ja noch einen Wert zurückgeben (durch das "int" in der Deklaration festgelegt).
Dies wird über die Zeile
Java:
return retWert;
erledigt. An der Stelle wird also der Wert retWert zurückgegeben.

Als eigenes Beispiel:
ich rufe auf
Code:
System.out.println(dividiere(4,2));

Java geht in die Methode dividiere und setzt die Beiden Eingangswerte (divident und divisor) auf 4 und 2.
Dannach führt java die Operationen aus die in der Methode stehen.
Da 2>0 wird 4 durch 2 geteilt und in retWert gespeichert.
Dann kommt java in die Zeile return retWert.
da 4/2 in retWert gespeichert wurde ist dieser auf 2.
2 Ist ein Integer-Wert und die Methode soll einen Integer-Wert zurückgeben.
Dies klappt also auch.
Also kann java meinen aufruf
Code:
System.out.println(dividiere(4,2));
jetzt durch
Code:
System.out.println(2);
ersetzen.

Ich habe hier jetzt eigentlich nichts anderes gemacht als meinen Code auf dem Papier auszuführen - was oft sehr hilfreich ist um zu verstehen wie ein Programm den Code abarbeiten wird.
Gruß
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben