Java Methoden
In diesem Artikel lernst du alles rund um das Thema Java Methoden. Vom Methodenaufruf über die Parameter bis hin zu den Rückgabewerten und den Getter Setter Methoden.
Du möchtest ohne große Anstrengung alles Wichtige zu den Java Methoden lernen? Dann schau dir unser Video dazu an!
Inhaltsübersicht
Methoden Java einfach erklärt
Die Main Methode hast du bereits kennengelernt. Sie spiegelt gleichzeitig den typischen Aufbau einer Java Methode oder auch Funktion wieder. Eine Java Methode ist dabei wie folgt aufgebaut
//Modifier + (static) + void oder Datentyp + Name der Methode + (Parameter) + {}
public static int methodenname(){
//auszuführende Befehle
return x;
}
Sie besteht aus einem Modifier, hier public
, welcher den Zugriff regelt. Danach kommt das optionale Schlüsselwort static
, je nach dem, ob du die Methode als statisch oder nicht statisch kennzeichnen möchtest. Willst du sie nicht statisch machen, lässt du das static
einfach weg. Daraufhin schreibst du den Datentyp
des Rückgabewertes. In unserem Fall ist das der Wert x
, welches hier ein Integer int
ist. Würde es kein return
Befehl geben, so programmierst du an der Stelle des int
ein void
.
Danach kommt der Name der Methode und die runden Klammern, hier methodenname()
. In den Klammern stehen die Parameter der Methode. Wie du an unserem Beispiel sehen kannst, muss eine Methode jedoch keine Parameter haben. Dann schreibst du einfach nichts in die runden Klammern. Parameter und Methodennamen werden zusammen auch die Signatur der Methode genannt. Im Anschluss stehen die Befehle in den geschweiften Klammern. Falls die Methode einen Wert zurückgibt schreibst du ein return
und dahinter den jeweiligen Variablennamen. Steht vor der Methoden Signatur ein void
, so darfst du kein return
programmieren. Die Methode soll ja nichts zurückgeben. Wichtig ist hier, dass nach dem return
die Methode verlassen wird, weshalb du das immer nach allen Befehlen programmieren solltest.
Modifier und Static
Häufig wird einer der Modifier private
, public
, default
oder protected
in Java benutzt. Private
und public
hast du bereits in dem Video zu Klassen
kennengelernt. Zusammengefasst bestimmt private
, dass du nur von innerhalb der Klasse auf die entsprechende Methode oder Variable zugreifen kannst. public
ist das Gegenteil dazu, hier kannst du auch von außerhalb der Klasse auf sie zugreifen. Bei protected
kannst du hingegen aus einer Klasse im selben Java Packet oder einer Sub-Klasse darauf zugreifen. Benutzt du kein Modifier Schlüsselwort, so ist das der default
Fall und es kann nur aus der Klasse oder dem Paket auf das entsprechende Programmsegment zugegriffen werden.
Ebenfalls hast du das static
in der Main Methode kennengelernt. Wir haben statische Main Methoden oder Variablen als unabhängig von der jeweiligen Klasse, in der sie geschrieben sind, bezeichnet. Das bedeutet wiederum, dass nicht ein extra Objekt der Klasse erzeugt werden muss, bevor diese Variable oder Methode benutzt werden kann. Lässt du das static
weg, so muss zuerst eine Instanz der Klasse für die weitere Verarbeitung der jeweiligen Java Methoden oder Variablen erzeugt werden.
Java Methoden aufrufen
Für den Aufruf einer Methode oder auch Funktion unterscheiden wir zwei verschiedene Fälle.
- 1. Fall: Methode steht in derselben Klasse,
- 2. Fall: Methode eines Objekts aufrufen.
Betrachten wir zunächst den 1. Fall. Für dieselbe Klasse gilt folgender Methodenaufruf:
public class Main{
public static void main(String[] args){
methode1("Hallo");
}
public void methode1(String wert){
System.out.println(wert);
}
}
Der Aufruf der Methode ist hier in der Main Methode.
Kommen wir nun zum 2. Fall: Für das Aufrufen einer Methode eines Objekt gilt folgendes:
public class Main{
public static void main(String[] args){
Klasse2 objekt1 = new Klasse2();
objekt1.methode2("Hallo");
}
}
Die zweite Klasse ist dabei:
public class Klasse2{
public methode2(String wert){
System.out.println(wert);
}
}
Wichtig ist die Signatur der Methode. Diese darf pro Klasse nur einmalig sein, denn sonst findet das Programm die Methode nicht.
Wie du siehst, verwendest du im 2. Fall zum Aufruf der Java Methode den Punktoperator. Vor diesem steht das Objekt, auf das die Methode angewandt werden soll und nach ihm die Methode mit entsprechendem Parameter.
Java Parameter
Im oberen Beispiel haben wir das Hallo
als Parameter der Java Methode übergeben. So können Werte von außen an die jeweilige Java Methoden mitgegeben werden. In dem Video zu den Variablen
hast du gelernt, dass die Variablen in Java zunächst deklariert werden müssen bevor du sie initialisieren kannst. Schauen wir uns das an folgendem Beispiel genauer an:
public static void main(String[] args){
methode1("Hallo", 4, 1.7);
}
public void methode1(String wert, int zahl, double kommazahl{
System.out.println(wert + zahl + kommazahl);
}
Mit methode1(String wert, int zahl, double kommazahl)
deklarierst du die Variable mit dem Datentypen String
, int
oder double
und mit dem Methodenaufruf methode1("Hallo", 4, 1.7)
initialisierst du die Variablen mit den entsprechenden Werten. Wichtig ist hier, dass du die Reihenfolge einhältst. Das bedeutet, wenn an der zweiten Stelle im Methodenaufruf eine ganzzahlige Zahl steht, so muss auch an der zweiten Stelle der Methode der Datentyp int
vermerkt sein. Würde hier ein String
stehen, dann würde der Methodenaufruf nicht funktionieren.
Java Methoden überladen
Im Beitrag zu den Klassen hatten wir den Fall, dass wir den Konstruktor überladen haben. Bei normalen Java Methoden kannst du das genauso machen, indem du den gleichen Methodennamen benutzt aber unterschiedliche Parameter. Zwei Methoden welche den gleichen Namen haben, müssen sich nämlich in der Signatur unterscheiden. Das heißt die Parameter dürfen nicht dieselben sein. Sonst kommt es zu einem Fehler.
Java Getter Setter
Dieses Kapitel baut auf dem Artikel über die Java Klassen auf. Wir befassen uns hier näher mit den Attributen und wie du dir diese über spezielle Java Methoden zugänglich machst.
In Klassen werden die Attribute mit dem Modifier private
versehen, da hier nichts von außerhalb der Klasse geändert werden soll. Sie sollen nicht so einfach zugänglich sein. Dennoch braucht man manchmal ein spezielles Attribut im Computercode in einer anderen Klasse oder möchte es verändern. Dafür gibt es die sogenannten getter und setter Java Methoden.
Um dir die Funktionsweisen dieser speziellen Methoden zu zeigen, bauen wir uns die Klasse Mensch. Sie soll als Attribut einen Namen haben. Außerdem soll sie einen Konstruktor, der den Namen der Klassenvariablen zuweist, besitzen. Danach kommt eine Setter und eine Getter Methode.
public class Mensch{
//Attribut
private String name;
//Konstruktor
public Mensch(String name){
this.name = name;
}
//Setter Methode
public void setName(String neuername){
this.name = neuername;
}
//Getter Methode
public String getName(){
return this.name;
}
}
Getter und Setter Methoden sind beide public
, weil du ja von einer Klasse außerhalb auf diese zugreifen möchtest. Es ist dabei Konvention ein „get“ oder „set“ vor den Namen der Methode zu schreiben. Der Name der Methode ist dabei gleich dem Variablennamen der Variable, die in der Methode behandelt werden soll. In unserem Fall entsteht so der Name setName()
und getName()
.
Die Set-Methode gibt an den Methodenaufruf keinen Wert zurück . Sie weißt lediglich der Klassenvariable name
einen neuen Wert zu. Da es keinen Rückgabewert für die Methode gibt, musst du vor den Methodennamen ein void
schreiben. Es ist außerdem wichtig, dass du an die Methode einen Parameter des Types String
mit dem neuen Namen übergibst. Die Variable nennen wir neuername
.
Die Get-Methode hingegen gibt den aktuellen Wert der Variablen zurück. Das ist eine Möglichkeit die Belegung der Variablen zu erfahren. Hier kannst du deshalb kein void
programmieren, sondern musst den Datentyp der Variablen hinschreiben. Das wäre ein String
.
Auf die Klasse Mensch wollen wir von einer Klasse mit der Main Methode zugreifen. Dafür erzeugen wir zunächst ein Objekt des Menschen und weißen ihm den Namen „Alex“ zu.
public class Main{
public static void main(String[] args){
Mensch mensch = new Mensch("Alex");
//aktuellen Wert ausgeben
System.out.println(mensch.getName());
//Wert verändern und erneute Ausgabe auf der Konsole
mensch.setName("Tom");
System.out.println(mensch.getName());
}
}
Bei der ersten Ausgabe erhältst du den Namen Alex, bei der zweiten den Namen Tom. Das liegt daran, dass du zwar das Objekt mit Namen Alex erzeugst, aber danach mit der Set-Methode auf Tom änderst.
Java Klassen
Schau dir noch einmal unser Video zu den Klassen an, um eine echter Java Profi zu werden!