Vorlesung Informatik 1 - Teil A: Java Kurs
1.4 Methoden
Methoden sind die wichtigsten Bestandteile von Klassen.
Wenn wir Methoden definieren, geben wir folgende Eigenschaften an:
- den Namen: frei wählbar (Ausnahme main), beginnt mit Kleinbuchstaben, keine Umlaute.
- den return-Typ: soll die Methode einen Wert zurückliefern (z.B. eine mathematische Funktion?
- wenn nein: return-Typ void
- wenn ja: entsprechender Datentyp (z.B. int oder double falls eine Zahl berechnet wird)
- die Sichtbarkeit: welche Klassen dürfen diese Methode anwenden
- public: die Methode ist für alle Klassen sichtbar (häufigster Fall)
- private: nur andere Methoden der eigenen Klasse dürfen die Methode rufen (für Hilfsmethoden
innerhalb einer Klasse)
- protected: Methoden der eigenen Klasse und von abgeleiteten Klassen ((Vererbung) dürfen die Methode verwenden
- die Parameter: eine durch Kommata getrennte Liste von Variablen in runden Klammern. Sie darf leer
sein.
Die Parameter gehören zu den lokale Variablen einer Methode.
Sichtbarkeit return-
Name Parameter-
| Typ
|
Liste
|
|
|
----^----
public int
berechneSumme(int x, int y) {
int summe = x + y;
return summe;
}
- Eine Methode, deren return-Typ nicht void ist, muss eine return-Anweisung enthalten. Nach return muss ein Wert stehen, dessen Typ dem return-Typ entspricht.
- Statische Methoden nennt man Klassenmethoden. Den Modifikator static verwenden wir ausschließlich bei der Methode main. Klassenmethoden arbeiten unabhängig von Objekten (das Betriebssystem muss nicht erst ein Objekt vom Typ HalloWelt erzeugen, um main zu rufen).
- Nicht-statischen Methoden heißen Instanzmethoden.
- Instanzmethoden arbeiten für ein einzelnes Objekt (eine Instanz), z.B.
Konto meinKontoo = new Konto();
meinKonto.einzahlen(5000);
Die Methode einzahlen wird für ein bestimmtes Objekt (hier meinKonto) gerufen, sie ändert das Saldo dieses Kontos.
Beispiele:
// Schreibe eine Zahl auf die Standardausgabe
public void
gibZahlAus(int zahl){
System.out.println("Die Zahl ist
"+zahl);
}
// Berechne die Summe von zwei
Zahlen
public int summe(int x, int y){
int summe=x+y; // lokale Variable
return summe;
}