OOP-Prinzipien

OOP-Prinzipien
Aktualisiert am 8.10.2024
Tobias Bück

Tobias Bück

Hallo! Ich bin Tobias Bück, Gründer von Softoft. Als Informatiker teile ich auf meinem Blog Einblicke in Softwareentwicklung, insbesondere das OTOBO Ticketsystem, sowie Automatisierungstools wie UIPath und Zapier.

Einführung in die Objektorientierte Programmierung

In Objektorientierten Programmiersprachen, wie z.B. Java, C# oder auch C++ gibt es Objekte, deswegen heißt es auch Objektorientiert, da sich alles um Objekte dreht. Objekte haben Attribute und Methode, Attribute geben an in welchem Zustand sich etwas befindet, die Methoden sind Handlungsmöglichkeiten der Objekte.

Beispiel für Klassen und Objekte

Ein Fahrzeug hat als Attribute; Gewicht = 1500.0 kg; Farbe = "Rot" und als Methoden Fahren. Es könnte auch noch ein Fahrzeug mit Gewicht = 1200.0 kg; Farbe = "Blau" und Methode Fahren geben. Objekte werden auf Basis von Klassen erzeugt. In diesem Beispiel, von der Klasse Fahrzeug, welche die Attribute Gewicht und Farbe hat. Ebenfalls definiert die Klasse Fahrzeug die Methode Fahren.

Ein Auto erbt alle Eigenschaften von einem Fahrzeug, hat zusätzlich jedoch einen Motor und einen Tank. Es kann auch getankt werden.

Implementiert in C#:


public class Auto
{
    public double Gewicht { get; set; }
    public string Farbe { get; set; }
    public double Tank { get; set; }
    

    public Auto(double gewicht, string farbe, double tank)
    {
        Gewicht = gewicht;
        Farbe = farbe;
        Tank = tank;
    }

    public void Tanken()
    {
        this.Tank = 48.0;
    }
}

UML Diagramm

@startuml
class Auto{
   + double Gewicht
   + string Farbe
   + double Tank
   + void Tanken()
}
@enduml

UML Diagram Class Attributes
UML Diagram Class Attributes

Sichtbarkeiten

Je nachdem mit welcher Programmiersprache man programmiert gibt es unterschiedliche Sichtbarkeiten für die Methoden und Attribute. Die wichtigsten sind private und public.

Private kann nur von dem Objekt selbst aufgerufen werden. Public von allen anderen Objekten. Protected unterschiedlich je nach Programmiersprache, sichtbarer als private aber weniger als public. In einigen Programmiersprachen nur in erbenden Klassen zu sehen.

Vererbung

Die Vererbung ist eine Beziehung zwischen zwei Klassen, bei welcher Klasse A alle Attribute und Methoden von Klasse B übernimmt. Es handelt sich dabei um eine "is a" - "ist eine" Beziehung. Zum Beispiel Mineralwasser ist ein Getränk oder ein Haus ist ein Gebäude.

In allgemeiner Form class Erbende Klasse : Mutterklasse

Beispiel C# Code:

public class Fahrzeug
{
    public double Gewicht { get; set; }
    public string Farbe { get; set; }

    public Fahrzeug(double gewicht, string farbe)
    {
        Gewicht = gewicht;
        Farbe = farbe;
    }

    public void Fahren()
    {
        Console.WriteLine("Das Fahrzeug fährt.");
    }
}

public class Auto : Fahrzeug
{
    public string Motor { get; set; }
    public double Tank { get; set; }

    public Auto(double gewicht, string farbe, string motor, double tank) : base(gewicht, farbe)
    {
        Motor = motor;
        Tank = tank;
    }

    public void Tanken()
    {
        Console.WriteLine("Das Auto wird getankt.");
    }
}

UML Diagramm

@startuml
class Fahrzeug {

+ double Gewicht
+ string Farbe
  +void Fahren()
  }

class Auto extends Fahrzeug {

+ double Tank
+ void Tanken()
  }

@enduml

UML Diagramm Vererbung Attribute
UML Diagramm Vererbung Attribute

Aggregation

Bei einer Aggregation sind ein oder mehrere Objekte Teil eines anderen Objekts. Zum Beispiel hat eine Mannschaft viele Mitspieler. Die Komposition hat gegen über der Vererbung den Vorteil, dass diese während der Laufzeit geändert werden kann. Viele Design Patterns versuchen daher Vererbung zu vermeiden und stattdessen die Beziehungen über Aggregationen aufzubauen.

UML Diagramm mit Aggregation
UML Diagramm mit Aggregation

Beziehung zwischen Mannschaft und Spieler

UML Klassendiagramm mit PlantUML erstellen

Ein UML (Unified Modeling Language) Klassendiagramm ist eine visuelle Darstellung der Struktur eines Systems, insbesondere der Beziehungen zwischen Klassen und Objekten. Es ist ein nützliches Werkzeug zur Visualisierung und Dokumentation des Designs eines Systems und kann mit verschiedenen Tools erstellt werden, darunter PlantUML.

PlantUML ist ein Open-Source-Tool, mit dem Sie UML-Diagramme mit einer einfachen, textbasierten Sprache erstellen können. Es ist insbesondere für die Erstellung von Klassendiagrammen geeignet, da es eine einfache und intuitive Syntax zur Definition von Klassen, Attributen und Beziehungen bereitstellt.

Um ein Klassendiagramm mit PlantUML zu erstellen, müssen Sie zunächst die Klassen in Ihrem System definieren. Dies kann mit dem Schlüsselwort "class" und dem Namen der Klasse erfolgen. Beispiel:

Anschließend können Sie die Attribute jeder Klasse mit dem Schlüsselwort "field" und dem Typ und dem Namen des Attributs definieren. Beispiel:

Sobald Sie die Klassen und Attribute in Ihrem System definiert haben, können Sie damit beginnen, Beziehungen zwischen ihnen zu erstellen. In einem Klassendiagramm werden diese Beziehungen als Linien dargestellt, die die Klassen verbinden. Es gibt mehrere Arten von Beziehungen, die Sie erstellen können, darunter Vererbung, Aggregation und Assoziation.

Um eine Vererbungsbeziehung zu erstellen, können Sie das Schlüsselwort "extends" und den Namen der Elternklasse verwenden. Beispiel:

Aggregation in PlantUML

Natürlich kann mit PlantUML auch UML Diagramme mit Aggregationen erstellen. Um das Beispiel von oben umzusetzen. Eine Mannschaft hat mehrere Spieler können wir folgenden PlantUML Text angeben.

PlantUML in IntelliJ / PyCharm / Webstorm / CLion verwenden

In IntelliJ können Sie mit PlantUML UML-Klassendiagramme erstellen, indem Sie die PlantUML-Plug-In installieren und verwenden. Hier sind die Schritte, die Sie ausführen müssen:

  1. Öffnen Sie IntelliJ und gehen Sie zu "File -> Settings -> Plugins".
  2. Geben Sie im Suchfeld "PlantUML" ein und wählen Sie das Plug-In aus der Liste aus.
  3. Klicken Sie auf "Installieren" und warten Sie, bis der Installationsvorgang abgeschlossen ist. Sie müssen möglicherweise IntelliJ neu starten, um das Plug-In zu aktivieren.
  4. Erstellen Sie ein neues Projekt oder öffnen Sie ein bestehendes Projekt in IntelliJ.
  5. Erstellen Sie eine neue Datei mit der Endung ".puml". Sie können dies tun, indem Sie im Projektfenster mit der rechten Maustaste auf den gewünschten Ordner klicken und "New -> File" auswählen.
  6. Geben Sie in der Datei den PlantUML-Code für Ihr Klassendiagramm ein. Sie können die Syntax von PlantUML verwenden, um Klassen, Attribute und Beziehungen zu definieren.
  7. Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie "Render PlantUML Diagram" aus dem Kontextmenü.
  8. Das Klassendiagramm wird im IntelliJ-Editor angezeigt. Sie können es bearbeiten und speichern, indem Sie auf das Diagramm doppelklicken und die Änderungen vornehmen.
CookieFirst Logo

Wir verwenden Cookies

Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Webseite zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Webseiten-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.