Frage zu Methoden/Funktionen

Hbx8x

Aktives Mitglied
Zb sei gegeben public static string name (...)

In (...) werden ja die Variablen genannt welche die Methode bzw funktion aufnimmt. Meine Frage ist nun, sind die Variablen davor bereits bekannt (zb durch deklarieren in einer anderen Funktion/Methode bzw in der main) oder werden sie erst hier deklariert unfd evtl sogar initialisiert.
 
Methodenparameter sind nur Namen, damit du innerhalb der Methode auf die Werte zugreifen kannst, die zum Zeitpunkt des Methodenaufrufes als sogenannte "aktuelle Argumente" der Methode übergeben werden.
Diese Parameter müssen nirgendwo anders deklariert werden.

Beispiel:
Java:
// Aufrufer:
meineMethode(3);

// Methodendeklaration:
public void meineMethode(int whatever) {
  System.out.println(whatever);
}
Im obigen Beispiel würde der Methodenaufruf den Wert `3` in dem Parameter `whatever` sehen und auf der Konsole ausgeben.
 
Vielen dank, das macht einiges sofort verständlicher! Also kann man sagen das eine Methode=Funktion ist. Unabhängig von der Programmierung kann man es allgemein als eine mathematische Funktion wie z.B. f(x,y,z) betrachen, wobei x y und z meine allgemeinen Variablen sind (z.b. Strings, Integer, boolean etc.). Diese Funktion kann ich nun in der Main (unter anderem) aufrufen, indem ich den Variablen explizite Werte zuordne, d.h. x,y und z fest vorgebe.

z.b.

Methode:

publc void funktion (string name, int alter) {

.......

}

Aufrufen z.b. in der Main mit explizit vorgegebenen Werten

funktion(hbx8x, 24),

Jetzt wird die aufgestellte Methode mit
name=hbx8x
alter=24

aufgerufen

analog kann man jetzt schnell für verschiedene feste Initialisierungen die Methode aufrufen. Ist das so richtg verstanden?

Edit: Mich würde noch interessieren wieso man der Methode ein Datentyp genau zuschreibt zb. public DATENTYP funktion (...).
Mir ist bewusst das der Datentyp sich auf den Ausgabewert=Rückgabetyp bezieht. Aber ich würde das gerne in einem Zusammenhang verstehen wo keine leere Menge=void zurückgegeben wird. Es sollte vermutlich eine Variable sein die dann in anderen Methoden weiterverarbeitet wird wenn ich es richtig verstanden habe.
 
Zuletzt bearbeitet:
Teil vor dem EDIT: Korrekt. Und man nennt es zumindest in imperativen Programmiersprachen deswegen nicht "Funktion" sondern "Methode" oder auch "Prozedur", weil Methoden/Prozeduren im Gegensatz zu Funktionen nicht zwingend referenzielle Transparenz besitzen. Mit anderen Worten: Sie können Nebeneffekte haben und können nicht nur von den Parameterwerten abhängen (z.B. weil sie einen Dateiinhalt oder die aktuelle Systemuhrzeit lesen).

Nach dem EDIT: Genauso wie eine Funktion eine Zielmenge (engl. codomain, range) besitzt, besitzt eine Methode auch einen Rückgabetyp, der dieser Menge entspricht.
Einfachstes Beispiel:
Java:
public int addiereZweiZahlen(int ersteZahl, int zweiteZahl) {
  return ersteZahl + zweiteZahl;
}
 

Zurück
Oben