Java

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 %VERWEIS auf Java Methoden dazu an!

Inhaltsübersicht

Methoden Java einfach erklärt

Die Main Methode %VERWEIS auf 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 %VERWEIS Java 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 %VERWEIS auf Java 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 %VERWEIS auf 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.

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.