Java Methoden Aus Anderen Klassen Aufrufen

Java ist eine objektorientierte Programmiersprache, in der Methoden eine zentrale Rolle spielen. Methoden sind Codeblöcke, die bestimmte Aufgaben ausführen. Um die Wiederverwendbarkeit und Strukturierung von Code zu verbessern, ist es üblich, Methoden aus anderen Klassen aufzurufen. Dieser Artikel erklärt, wie das in Java funktioniert, und gibt praktische Beispiele.
Grundlagen: Klassen und Objekte
Bevor wir uns dem Aufruf von Methoden aus anderen Klassen widmen, ist es wichtig, die Grundlagen von Klassen und Objekten zu verstehen.
- Klasse: Eine Klasse ist eine Art Bauplan oder Vorlage für Objekte. Sie definiert die Eigenschaften (Attribute) und das Verhalten (Methoden) eines Objekts.
- Objekt: Ein Objekt ist eine Instanz einer Klasse. Es ist eine konkrete Realisierung des Bauplans, der in der Klasse definiert ist.
Betrachten wir ein einfaches Beispiel:
public class Auto { // Attribute (Eigenschaften) String farbe; int ps; // Methode (Verhalten) public void fahren() { System.out.println("Das Auto fährt!"); } }
Hier ist Auto
die Klasse. Um ein tatsächliches Auto (ein Objekt) zu erstellen, verwenden wir den new
Operator:
Auto meinAuto = new Auto(); meinAuto.farbe = "rot"; meinAuto.ps = 150; meinAuto.fahren(); // Ausgabe: Das Auto fährt!
Methodenaufruf aus einer anderen Klasse: Die Grundlagen
Um eine Methode aus einer anderen Klasse aufzurufen, benötigen wir eine Instanz (ein Objekt) dieser Klasse. Es gibt im Wesentlichen drei Möglichkeiten:
- Erstellen einer neuen Instanz: Wir erzeugen ein neues Objekt der Klasse, in der sich die aufzurufende Methode befindet.
- Verwendung einer bestehenden Instanz: Wir erhalten eine Referenz auf ein bereits existierendes Objekt der Klasse. Dies kann durch Parameterübergabe, statische Variablen oder andere Mechanismen geschehen.
- Aufruf einer statischen Methode: Statische Methoden gehören zur Klasse selbst und nicht zu einer bestimmten Instanz. Sie können direkt über den Klassennamen aufgerufen werden.
1. Erstellen einer neuen Instanz
Dies ist die einfachste Methode. Wir erstellen ein neues Objekt der Klasse, in der sich die aufzurufende Methode befindet, und rufen dann die Methode auf diesem Objekt auf.
public class Rechner { public int addiere(int a, int b) { return a + b; } } public class Hauptklasse { public static void main(String[] args) { Rechner meinRechner = new Rechner(); // Erstellung einer neuen Instanz von Rechner int ergebnis = meinRechner.addiere(5, 3); // Aufruf der Methode addiere() System.out.println("Ergebnis: " + ergebnis); // Ausgabe: Ergebnis: 8 } }
In diesem Beispiel erstellt die Hauptklasse
eine neue Instanz der Klasse Rechner
und ruft dann die Methode addiere()
auf dieser Instanz auf.
2. Verwendung einer bestehenden Instanz
Manchmal ist es nicht notwendig oder sinnvoll, eine neue Instanz einer Klasse zu erstellen. Stattdessen möchten wir eine bestehende Instanz verwenden. Dies kann durch verschiedene Mechanismen erreicht werden:
- Parameterübergabe: Eine Instanz wird als Parameter an eine Methode übergeben.
- Statische Variablen: Eine Instanz wird in einer statischen Variable gespeichert und kann von anderen Klassen abgerufen werden.
- Dependency Injection (DI): Ein Framework verwaltet die Abhängigkeiten zwischen Klassen und stellt Instanzen bereit. (Dies ist ein fortgeschrittenes Thema).
Beispiel mit Parameterübergabe:
public class NachrichtenDienst { public void sendeNachricht(Empfaenger empfaenger, String nachricht) { empfaenger.empfangeNachricht(nachricht); } } public class Empfaenger { private String name; public Empfaenger(String name) { this.name = name; } public void empfangeNachricht(String nachricht) { System.out.println(name + " hat folgende Nachricht empfangen: " + nachricht); } } public class Main { public static void main(String[] args) { Empfaenger empfaenger = new Empfaenger("Max"); NachrichtenDienst dienst = new NachrichtenDienst(); dienst.sendeNachricht(empfaenger, "Hallo Max!"); // Aufruf der Methode empfangeNachricht() über die übergebene Instanz } }
Hier übergibt die Main
Klasse eine Instanz von Empfaenger
an die Methode sendeNachricht()
der Klasse NachrichtenDienst
. Die Methode sendeNachricht()
ruft dann die Methode empfangeNachricht()
auf der übergebenen Instanz auf.
3. Aufruf einer statischen Methode
Statische Methoden gehören zur Klasse selbst und nicht zu einer bestimmten Instanz. Sie werden mit dem Schlüsselwort static
deklariert. Um eine statische Methode aufzurufen, verwenden wir den Klassennamen, gefolgt von einem Punkt und dem Methodennamen.
public class MatheHelfer { public static int quadriere(int zahl) { return zahl * zahl; } } public class Hauptklasse { public static void main(String[] args) { int quadrat = MatheHelfer.quadriere(4); // Aufruf der statischen Methode quadriere() System.out.println("Das Quadrat von 4 ist: " + quadrat); // Ausgabe: Das Quadrat von 4 ist: 16 } }
In diesem Beispiel rufen wir die statische Methode quadriere()
der Klasse MatheHelfer
direkt über den Klassennamen auf, ohne eine Instanz der Klasse zu erstellen.
Sichtbarkeit von Methoden (Access Modifiers)
Die Sichtbarkeit einer Methode bestimmt, von wo aus sie aufgerufen werden kann. Java bietet vier Access Modifiers:
- public: Die Methode ist von überall aus zugänglich.
- protected: Die Methode ist innerhalb der gleichen Klasse, innerhalb von Subklassen (auch in anderen Packages) und innerhalb des gleichen Packages zugänglich.
- private: Die Methode ist nur innerhalb der gleichen Klasse zugänglich.
- (package-private/default): Wenn kein Access Modifier angegeben ist, ist die Methode innerhalb des gleichen Packages zugänglich.
Wenn Sie eine Methode aus einer anderen Klasse aufrufen möchten, muss die Methode mindestens die Sichtbarkeit public
oder protected
(wenn die aufrufende Klasse eine Subklasse ist oder sich im gleichen Package befindet) haben.
Zusammenfassung
Das Aufrufen von Methoden aus anderen Klassen ist ein grundlegendes Konzept in Java. Es gibt drei Hauptwege, dies zu tun:
- Erstellen einer neuen Instanz der Klasse.
- Verwenden einer bestehenden Instanz (Parameterübergabe, statische Variablen, DI).
- Aufrufen einer statischen Methode über den Klassennamen.
Die Wahl der Methode hängt von der spezifischen Situation und den Anforderungen des Projekts ab. Achten Sie auf die Sichtbarkeit der Methoden, um sicherzustellen, dass Sie sie von der gewünschten Stelle aus aufrufen können. Das Verständnis dieser Konzepte ist entscheidend für die Entwicklung sauberer, wartbarer und wiederverwendbarer Java-Anwendungen.









![Java Methoden Aus Anderen Klassen Aufrufen Methoden in Klassen definieren und aufrufen [mit Video]](https://programmieren-starten.de/wp-content/uploads/2024/09/methoden-1-1024x458.png)





![Java Methoden Aus Anderen Klassen Aufrufen Java Super • Aufruf von Funktionen der Oberklasse · [mit Video]](https://d3f6gjnauy613m.cloudfront.net/system/production/videos/001/903/5948675e94525102ec84046554cebcdc7642c4b6/Java_Super_Thumbnail.png?1688029114)

