Top Menu

Jump to content
Home
    • Projects
    • Work packages
    • News
    • Getting started
    • Introduction video
      Welcome to OpenProject
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • Upgrade to Enterprise edition
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Professional support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      Create a new account
      Forgot your password?

Side Menu

  • Overview
  • News
  • Forums
  • Wiki
    • Table of contents
      • Expanded. Click to collapseCollapsed. Click to showWiki
        • Expanded. Click to collapseCollapsed. Click to showBeispielprojekte
          • Hierarchy leafFlappy Box2D
          • Hierarchy leafFlappy Improved
          • Hierarchy leafHighscore Hibernate
          • Hierarchy leafHighscore Webservice + Anbindung mit Retrofit
        • Expanded. Click to collapseCollapsed. Click to showEntwicklung mit Java
          • Hierarchy leaf001) Grundlagen - Entwicklungsumgebung
          • Hierarchy leaf002) Erstes Programm
          • Hierarchy leaf003) Variablen und Datentypen
          • Expanded. Click to collapseCollapsed. Click to show004) Schleifen
            • Hierarchy leaf1) for - Zählschleife
            • Hierarchy leaf2) while
            • Hierarchy leaf3) do while
            • Hierarchy leaf4) for each
          • Hierarchy leaf005) Arrays
          • Hierarchy leaf006) Methoden
          • Expanded. Click to collapseCollapsed. Click to show007) Objektorientierte Programmierung
            • Hierarchy leaf001) Klasse
            • Hierarchy leaf002) Vererbung und Darstellung von Klassen in UML
            • Hierarchy leaf003) Abstrakte Klasse
            • Hierarchy leaf004) Design patterns
          • Expanded. Click to collapseCollapsed. Click to show008) Webservices
            • Hierarchy leaf01) REST - Representational State Transfer
            • Hierarchy leaf02) Minimaler Webservice
            • Hierarchy leaf03) Joke Webservice
            • Hierarchy leaf04) Highscore Service
        • Expanded. Click to collapseCollapsed. Click to showMatura - Vorbereitung
          • Hierarchy leaf01) Projektmanagement
          • Hierarchy leaf02) Objektorientierte Programmierung
          • Hierarchy leaf03) Modellierung und UML
          • Expanded. Click to collapseCollapsed. Click to show04) Design Patterns
            • Hierarchy leaf00) Generelle Konzepte
            • Hierarchy leafFactory(-Method) Pattern
            • Hierarchy leafObserver Pattern
            • Hierarchy leafSingleton Pattern
            • Hierarchy leafStrategy Pattern
          • Hierarchy leaf05) Algorithmen und Datenstrukturen
          • Hierarchy leaf06) Webtechnologien
          • Hierarchy leaf07) Webservices
          • Hierarchy leaf08) Softwarequalitätsmanagement
          • Hierarchy leaf09) Softwareentwicklungsmodelle
        • Expanded. Click to collapseCollapsed. Click to showProjekt Rahmenbedingungen
          • Expanded. Click to collapseCollapsed. Click to showRetrospektive
            • Hierarchy leafRetro - [Name Schüler_in]
        • Hierarchy leafReact Native
        • Expanded. Click to collapseCollapsed. Click to showÜbungen
          • Hierarchy leaf1) Basic
          • Expanded. Click to collapseCollapsed. Click to show2) Basic
            • Hierarchy leaf001) Methode ohne Rückabewert mit Parametern
            • Hierarchy leaf002) Methode mit Parametern und Rückgabewert
            • Hierarchy leaf003) Text umdrehen
            • Hierarchy leaf004) Text umdrehen 2
            • Hierarchy leaf005) Kommandozeile
            • Hierarchy leaf006) Kommandozeile 2
            • Hierarchy leaf007) Vererbung - Geometry
            • Hierarchy leaf008) File from String
            • Hierarchy leaf009) Rekursion - Summe
            • Hierarchy leaf010) Rekursion - File
          • Expanded. Click to collapseCollapsed. Click to showDatenstrukturen
            • Hierarchy leaf011) Binärbaum
            • Hierarchy leaf012) Binärbaum - Generics
            • Hierarchy leaf013) AVL - Tree
            • Hierarchy leaf014) Linked List - Einfach verkettete Liste
            • Hierarchy leaf015) Graph
            • Hierarchy leaf016) Dijkstras shortest path first
          • Expanded. Click to collapseCollapsed. Click to showJava - Kara
            • Hierarchy leafKara lernt schreiben
You are here:
  • Wiki
  • Entwicklung mit Java
  • 006) Methoden

Content

006) Methoden

  • More
    • Print
    • Table of contents

Was ist eine Methode?

  • Funktionen (in Java sprechen wir von Methoden), dienen dazu gewisse Programmfunktionalität zu kapseln
  • Eine Methode können wir uns wie eine Blackbox vorstellen, man gibt etwas rein und bekommt etwas raus
    • Wir müssen nur wissen was sie tut, nicht jedoch wie sie es tut
  • Ein Beispiel println("Hallo"):
    • Wir haben schon sehr oft System.out.println("Hallo") verwendet
    • println("Hallo") ist eine Methode welche verschiedene Parameter nimmt, und diese dann in der Konsole ausgiebt
    • Die Funktion gibt jedoch nichts zurück
    • Wie dies genau funktioniert brauchen wir nicht zu wissen
public static void main(String[] args) {
    ...
}

...die main Methode ist der Haupteinstiegspunkt jedes Java Programmes

Definition:

  • Eine Methode besteht aus:
    • Rückgabetyp
      • Was wird zurückgegeben? z.b.: int
      • Wenn sie nichts zurückgibt, dann steht als Rückgabetyp void
    • Methodennamen
      • Fängt immer mit einem kleinen Buchstaben an und kann Zahlen und Buchstaben enthalten
      • Dieser sollte kurz beschreiben was die Methode tut
    • Parametern
      • Parameter werden wie Variablendeklarationen geschrieben
      • Beispiel: Es sollen zwei Zahlen übergeben werden
        • (int a, int)
      • Wird nichts übergeben, wird einfach nichts hingeschrieben
        • ()
    • Methodenrumpf
      • Innerhalb { ... } steht der Code der ausgeführt werden soll
      • Hat die Methode, einen Rückgabetyp, so muss ein Wert des entsprechenden Rückgabetyps mit return zurückgegeben werden
        • return 10;
      • Hat eine Methode keinen Rückgabetyp, so muss auch kein return Statement vorhanden sein, trotzdem kann dieses verwendet werden um die Methode vorzeitig zu beenden
        • return;
    • Fehler
      • Wenn bei einer Methode Fehler auftreten können, so kann eine Methode Fehler werfen, die dem Anwender die Möglichkeit geben darauf zu reagieren
        • throws Exception
    • Folgende Dinge können wir vorerst ignorieren:
      • Sichtbarkeit (public, private, protected), definiert von wo aus die Methode aufgerufen werden kann
      • static, ist es eine Instanzmethode, oder eine KlassenMethode
  • [public|private|protected]? [static]? Rückgabetyp methodenname(Parameter1..., Parameter2..., Parameter3...) [throws Fehler[, Fehler2]*]? { ... }
  • Jede Methode besitzt eine Methodensignatur und diese muss eindeutig in der Klasse, in der sie erstellt wurde, sein. Die Signatur besteht aus Methodenname und den Parametern, nicht jedoch dem Rückgabetyp.

Überladen von Methoden (overloading):

  • Wenn mehrere Methoden den selben Methodennamen jedoch unterschiedliche Parameter haben, nennt man dies Überladen. Der Rückgabetyp spielt hier keine Rolle, da dieser auch ignoriert werden kann, und der Compiler  dann nicht unterscheiden kann welche Methode aufgerufen kann.
  • Bsp.:
    • public static int add(int a, int b) { ... }
    • public static int add(int a, int b, int c) { ... }
    • public static double add(double a, double b) { ... }
    • public static double add(int a, int b) { ... } ist nicht möglich, da sich die Methode nur im Rückgabetyp von int add(int a, int b) unterscheidet.

Beispiel mit Parametern und Rückgabetyp:

  • public static int sum(int a, int b) {
        return a + b;
    }
  • Die Methode sum, nimmt zwei Parameter, a und b und gibt die Summe der beiden Parameter zurück
  • Der Aufruf erfolgt mittels sum(10, 5);

Beispiel ohne Parameter und mit Rückgabetyp:

  • public static String hallo() {
        return "Hallo";
    }
  • Die Methode nimmt keine Parameter und gibt einfach den String (Text) "Hallo" zurück
  • Der Aufruf erfolgt mittels hallo();

Beispiel mit Parametern und ohne Rückgabetyp:

  • public static void printSum(int a, int b) {
        int sum = a+b;
        System.out.println("Die Summe von "+a+" und "+b+" ist: "+sum);
    }
  • Die Methode nimmt die zwei Parameter a und b und gibt dessen Summe in der Konsole aus
  • Der Aufruf erfolgt mittels printSum(10, 5);

Komplettes Beispiel

public class Ue6 {
	public static void main(String[] args) {
		System.out.println(sum(-10, 5));
		System.out.println(sum(-3, 2));
		System.out.println(sum(-100, 1));
		System.out.println(sum(30, 10));
		int a = sum(-10, 5);
		System.out.println(a);
	}

	public static int sum(int zahl, int zahl2) {
		return zahl + zahl2;
	}
}
Loading...