~Java4Beginners~
~Java4Beginners~

Objektorientierung

Grundsätzlich können wir die Objektorientierung unter Java in 3 große Gebiete einteilen.
  • Klassen
  • Objekte
  • Methoden
Java ist eine Objektorientierte Programmiersprache (OOP), welche sich aus den fundamentalen Bestandteilen von Klassen, Objekte und Methoden definiert. In diesem Kapitel wollen wir uns mit der Konzeption der Objektorientierung beschäftigen.
Diese Objektorientierung kann auch auf das tägliche Leben übertragen werden. Sehen sie sich z. B. die Küche an. In der Küche finden Sie verschiedene Geräte wie Ofen, Spüle, Kaffeemaschine etc. Ein Geräte wie ein Ofen kann entweder Ofenplatten erwärmen zum kochen oder den Backofen zum backen heizen. Die Spüle kann zum spülen verwendet werden, usw. Wenn wir dies nun aufteilen, können wir folgende Äußerung treffen.
  • Die Küche ist ein definierter Bereich, in welchem sich verschiedene Geräte befinden.
  • In der Objektorientierung können wir sagen, dass die Küche die Klasse ist.
  • In unserer Klasse Küche, befinden sich eine Vielzahl an Geräten.
  • Somit könnte man sagen, die Küchengeräte sind Objekte der Klasse Küche.
  • Jedes dieser Geräte hat verschiedenste Bedienmöglichkeiten. Wir können eine Kaffeemaschine einschalten. Wir können den Kaffeefilter mit Kaffee füllen zum Kaffeekochen. Oder wir setzen einen Teefilter mit Teekräuter ein, um Tee zu machen.
  • Unser Objekt Kaffeemaschine hat somit verschiedene Möglichkeiten, die wir in der OOP Methoden nennen.
In unserer Klasse Küche gibt es ein Objekt Kaffeemaschine, welches über die Methode Teemachen verfügt

Klassen

Eine Klasse beschreibt eine Gruppe von Objekten mit gemeinsamen Eigenschaften und Verhalten.

Das Schlüsselwort für das Erzeugen von Klassen ist class, welches Ihnen sofort bekannt vorkommen dürfte. Man kann auch sagen, dass alle Programme, die wir uns bisher angeschaut haben, eigentlich keine richtigen Programme waren, sondern lediglich eine Klasse.
Eine Klasse dient als Schablone, um Objekte der Klasse zu erschaffen.

Objekte und Instanzen

Wenn wir eine Klasse definiert haben, können wir Instanzobjekte in dieser Klasse erzeugen. Objekte werden diesebezüglich auch oft als Instanz bezeichnen. Um Objekte der Klasse zu erzeugen, benötigt man sogenannte Konstruktoren.
Das Schlüsselwort für das Erzeugen eines neues Objektes lautet new, wie sie es bereits aus dem Kapitel Datenströme einlesen mit der Scanner-Klasse kennen.

Methoden und Eigenschaften

Eigenschaften sind Werte, die ein Objekt besitzt. So kann unser Objekt Kaffeemaschine die Eigenschaft Farbe haben (blau oder schwarz). Eigenschaften werden bei der Objekterzeugung festgelegt und sind in der jeweiligen Klasse innerhalb der Konstruktoren hinterlegt.
Methoden sind Aktionen, die wir mit einem Objekt durchführen können. Einige Methoden für die Kaffeemaschine hab ich ja bereits genannt, weiterhin wären auch Methoden denkbar, die Eigenschaft Farbe des Objektes zu ändern.

Beispiel einer Objektorientierung

Dieses Beispiel besteht aus 2 Klassen. Einmal die Klasse AutoStart.java, welche die main-Methode besitzt und der Klasse Auto.java.

AutoStart.java

Diese Klasse erstellt Objekte der Klasse Auto.

/**
 * Startklasse für die Anwendung Auto
 * @author Markus Badzura
 */
public class AutoStart 
{
    public static void main(String[] args)
    {
        // Erzeugen von 2 Objekten des Types Auto
        Auto auto1 = new Auto();
        Auto auto2 = new Auto("Hans"); // String muss in doppelten Hochkommas übergeben werden.
        // Auto 1 und 2 bewegen
        auto1.bewegeAuto(120);
        auto2.bewegeAuto(-100);
        // Auto2 ist 100km rückwärts gefahren. Um zu sehen, welcher km-Stand der
        // Tachometer hat deklarieren wir Variable km und initialisieren diese mit
        // dem Rückgabewert der Methode getKmStand()
        int km = auto2.getKmStand();
        System.out.println("Auto 2 - Km-Stand: "+km);
        auto1.aendereRichtung(20.5);
    }
}

Auto.java

Diese Klasse beinhaltet die Konstruktoren für die Objekterstellung und die Methoden und Eigenschaften des Objektes.

import java.util.Scanner;
/**
 * Konstruktoren und Methoden für die Anwendung Auto
 * @author Markus Badzura
 */
public class Auto 
{
    Scanner sc = new Scanner(System.in);
    // Variablendeklaration und Initialisierung
    private int tachometer = 0;
    private String besitzer = "keiner";
    // Konstrukoren
    // ohne Parameter
    Auto(){}
    // mit Parameter (Es wird Parameter der Klasse String, d. h. Zeichenkette
    // erwartet.
    Auto(String name)
    {
        besitzer = name;
    }
    /**
     * Erhält gefarene km, addiert diese zum Tachometer-Stand und gibt den
     * Namen des Besitzers und die gefahrenen km aus.
     * @param gefahreneKM Anzahl der gefahrenen KM
     */
    public void bewegeAuto(int gefahreneKM)
    {
        tachometer = tachometer + Math.abs(gefahreneKM);
        System.out.println(besitzer+" ist gerade "+gefahreneKM+" gefahren.");
    }
    /**
     * Gibt den Besitzer und die Gradzahl beim Wechsel der Fahrtrichtung an
     * @param grad Gradanzahl, um wieviel die Fahrtrichtung geändert wurde
     */
    public void aendereRichtung (double grad)
    {
        System.out.println(besitzer+" hat seine Fahrtrichtung um "+grad+"° geändert");
    }
    /**
     * Gibt den aktuellen KM-Stand zurück
     * @return aktuellen KM-Stand als int-Wert
     */
    public int getKmStand ()
    {
        return tachometer;
    }
}

Zusammenfassung

Diese kleine Beispiel verdeutlicht die Objektorientierung von Java und sieht komplizierter aus, wie es eigentlich ist. In den nächsten Kapitel werden die einzelnen Bereiche der Objektorientierung näher betrachtet.
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-04-29