Thema: Grundlagen der ProgrammierungDatum: 13.01.2013

Grundlagen der Programmierung

Vorwort
Ein UML Diagram, was ist das eigentlich? Eine Klasse, gab es die nicht mal in der Schule und was soll denn ein Constructor sein? Wenn diese Fragen aufkommen, wird es langsam Zeit sich ein wenig mit dem Ganzen auseinanderzusetzen. Denn hinter all diesen Begriffen steckt mehr als nur ein paar Buchstaben.
Eure Neugierde wurde geweckt? Dann nichts wie los und weitergelesen. Neben Klassendiagrammen und Objektdiagrammen wird auch auf eine entsprechende Implementierung dieser in Java eingegangen.

Fremdworte
Fremdwort
Bedeutung
Klasse Eine Klasse beinhaltet den Bauplan für unser Program. Hierbei kann ein Program aus mehreren Klassen bestehen auf welche es zugreift (Vererbung u.Ä.). In einer Klasse werden Variablen, Funktionen standardmäßig miteinander verwendet.
Objekt / Instanz Ein Objekt oder eine Instanz kann aus einer Klasse erzeugt werden. So kann man aus einer Klasse Spieler, verschiedene Personen erzeugen:
Spieler spielerA = new Spieler
Spieler spielerB = new Spieler
Spieler spielerC = new Spieler
Dies sind alles Objekte welche aus der Klasse erzeugt wurden.
Klassendiagramm Gibt eine Übersicht der Verwendeten Funktionen, Variablen und des Konstruktors innerhalb einer Klasse.
Objektdiagramm Stellt eine Übersicht der Wertezuweisungen eines Objekts dar.
Implementieren Erstellung des Sourcecodes aus einem vorhandenen Klassendiagramm
Funktion / Methode Eine Funktion bzw. Methode kann man als Maschine ansehen. Auf der einen Seite gibt man etwas rein und auf der anderen Seite kommt etwas heraus.
Attribut Ein Attribut ist ein Wert der einer Variablen gegeben werden kann.
Private In einer Klasse verwendete Variablen können nicht in anderen Klassen aufgerufen und bearbeitet werden. Hierfür wird dann eine entsprechende set oder get Methode benötigt.
Public Jeder kann auf die Variable zugreifen.
Constructor Mit einem Constructor wird ein Objekt geboren. In diesem erfolgt die grundlegende Variablenzuweisung.

Das Klassendiagramm


Ein Klassendiagramm besteht aus drei Teilen:
  • Klassenname
  • Variablen
  • Funktionen/Methoden
Der Klassenname wird groß geschrieben, damit man erkennt das es sich hierbei um eine Klasse handelt.
Bei den Variablen erfolgt die Angabe der Informationen nach folgendem Schema:

Rechte Name : Datentyp
Beispiel: + geschwindigkeit : int
Dies würde eine public Variable mit dem Namen geschwindigkeit erstellen welche vom Typ Integer ist.

Das + steht für public, das - für private und das c für den Constructor.

In dem Bereich der Methoden/Funktionen wird zunächst der Constructor erstellt. Dieser trägt den Namen der Klasse und beinhaltet, sofern nicht anders beschrieben, die Datentypen der im Bereich Variablen angegebenen Variablen.
Jenachdem welche Methoden man in der Klasse verwendet, erhalten diese entweder einen zugewiesenen Wert oder geben einen Wert zurück. Eine Methode kann auch Beides machen, einen Wert erhalten und einen Wert zurückgeben.
Der Aufbau des Schema sieht folgendermaßen aus:

Rechte Name (Eingabe_Datentyp) : Rückgabe_Datentyp
Beispiel: + setGewicht(int)

Sofern es keinen Rückgabewert gibt, muss dieser auch scheinbar nicht durch einen entsprechenden vermerk ( : Void ) gekennzeichnet werden.

Implementierung

Die Implementierung des oberen Klassendiagramms würde folgendermaßen aussehen:

                  //-------- Klasse --------
                  class Laster{
                  //-------- Variablen --------
                    private String name;
                    private int gewicht;
                  //-------- Konstruktor --------
                    Laster(String name, int gewicht){
                      this.name = name;
                      this.gewicht = gewicht;
                    }
                  //-------- Methoden --------
                    public void setName(String name){
                      this.name = name;
                    }

                    public String getName(){
                      return name;
                    }

                    public void setGewicht(int gewicht){
                      this.gewicht = gewicht;
                    }

                    public int getGewicht(){
                      return gewicht;
                    }

                    public void fahren(){

                    }
                  }
                   
                

Objektdiagramm


Das Objektdiagramm besteht aus zwei Teilen, nämlich aus dem Objektnamen und der Wertezuweisung. Anders als bei den Klassen, wird der Objektname kleingeschrieben und unterstrichen.
In dem Bereich der Wertezuweisung, werden die entsprechenden Werte aus der Klasse des jeweiligen Objekts zugewiesen.
Im Grunde könnte man sagen, dass das Objektdiagramm, den Constructor mit festgelegten Werten darstellt.

Darstellung von Zusammenhörigkeit
Zwischen verschiedenen Klassen, kann eine Zusammengehörigkeit sowie eine Vererbung bestehen. Diese wird folgendermaßen dargestellt:



Wie man erkennt, gibt es verschiedene Arten der Zusammengehörigkeit:
  • Assoziation (Einfache Verbindung)
    Klassen können nebeneinander und im Grunde auch unabhängig voneinander existieren und agieren.
  • Aggregation (Mittlere Verbindung)
    Die Klassen sind teilweise abhängig voneinander. Klasse A (Objekt) kann nur durch Klasse B erzeugt werden und das zu jedem beliebigen Zeitpunkt. Sollte Klasse B nicht mehr existieren bleibt Klasse A weiterhin bestehen.
  • Komposition (Schwere Verbindung)
    Die Klassen sind vollständig voneinander abhängig. Beide werden gleichzeitig erzeugt und auch gleichzeitig zerstört.
  • Vererbung
    Eine Klasse erbt von einer anderen Klasse Informationen und kann dieser zur Bearbeitung von Aufgaben verwenden.

Verbindung: Fahrer - Laster:
Bei dieser Verbindung besteht eine Aggregation. Sofern wir einen Fahrer besitzen, kann dieser zu einer beliebigen Zeit einen Laster erhalten. Sollte der Fahrer verschwinden bleibt der Laster weiterhin bestehen. Allerdings kann man einen Laster nicht ohne vorher einen Fahrer zu besitzen erzeugen.

Verbindung Fahrer - Spieler:
Der Fahrer erbt die Informationen der Klasse Spieler und kann mit diesen Arbeiten. Jeder Fahrer ist ein Spieler aber nicht jeder Spieler ist ein Fahrer! Die Klasse Spieler beinhaltet sogesehen das Grundkonzept und die Klasse Fahrer die nötigen Extras.

Verbindung: Spieler - Firma:
Sobald eine Firma erzeugt wird, wird auch ein Spieler erzeugt. Sofern die Firma nicht mehr existiert, existiert auch der Spieler nicht mehr.

Verbindung: Firma - Welt:
Die Klassen Firma und Welt können unabhängig voneinander existieren. Vergleicht man dies mit der Realität würde es überhaupt keinen Sinn machen, dass es eine Firma gibt ohne das eine Welt existiert.

Schlusswort
Ich hoffe das Tutorial konnte euch wieder einen kleinen Einblick in die Programmierung geben. Sollte euch beim Lesen ein Fehler aufgefallen sein oder ihr habt einen Verbesserungsvorschlag, dann würde ich mich über eine kleine Rückmeldung freuen.