Modul 226A

OOP ohne Vererbung, Klassen-, Objekt- und Sequenzdiagramme

programming
Modul 226 A - OOP ohne Vererbung

Übersicht

Klassenkonzept

Objekte, Klassen, Attribute, Methoden

Sequenzdiagramm

Interaktionsrahmen, Nachrichten, Fragmente

Arrays

Elemente hinzufügen, manipulieren, löschen

Assoziationen

Assoziation, Aggregation, Komposition

Methoden überladen

Einfache Methoden überladen

ArrayList

initialisieren, nützliche Methoden, Funktionsweise

Klassenkonzept

Kurzfassung

Was ist ein Objekt?

Ein Objekt oder auch Instanz genannt, ist ein bestimmtes Exemplar einer Klasse.
Ein Objekt beinhaltet Attribute (Eigenschaften) sowie Methoden.

Was ist eine Klasse?

Eine Klasse ist wie ein Bauplan für ein Objekt.
Der Bauplan definiert, was für Attribute sowie Methoden die Objekte besitzen.
Aus einer Klasse können Objekte instanziiert werden.

Was sind Attribute und Methoden?

Attribute sind die Eigenschaften eines Objektes. Sie beschreiben den Gegenstand vollständig.
Methoden beschreiben die Operationen (Funktionen), welche mit dem Objekt durchgeführt werden können.

Object diagram
Class diagram

Assoziationen

Kurzfassung

Binäre Assoziation

Eine binäre Assoziation ist eine Beziehung zwischen zwei Klassen, welche auf eine bestimmte Art miteinander verknüpft sind.

Aggregation

Sobald man die Fragestellung mit hat beantworten kann, handelt es sich um eine Aggregation.
Die Aggregation wird als weiss ausgefüllte Raute dargestellt.

Komposition

Das Teil kann ohne sein Ganzes nicht existieren.
Die schwarz ausgefüllte Raute stellt die Komposition dar.

Binäre Assoziation

Eine binäre Assoziation ist eine Beziehung zwischen zwei Klassen.
Mit einem ausgefüllten Dreieck wird die Leserichtung angegeben.

assoziation

Die Definition der Navigationsrichtung erfolgt durch einen Pfeil.
Ein Kreuz weist darauf hin, dass über dieses Ende nicht navigiert werden kann.

assoziation

Multiplizitäten binärer Assoziationen

Multiplizitäten einer Assoziation geben an, wie viele Objekte der einen Klasse mit der anderen Klasse in Verbindung stehen.
Werden Multiplizitäten angegeben, so muss man diese immer an beiden Enden notieren.

Multiplizität Beschreibung
0 keins
1 genau eins
* beliebig viele
0..* keins oder beliebig viele
1..* eins oder beliebig viele
4..20 4 bis 20
1,5,7 eins, fünf oder sieben

Aggregation

Die Aggregation ist eine spezielle Assoziation, welche immer dann angewendet wird, wenn eine Ganzes-Teile Beziehung vorliegt.
Dabei ist eine Klasse das Ganze und die andere Klasse einen Teil davon.

Sobald man die Fragestellung mit hat beantworten kann, handelt es sich um eine Aggregation.

aggregation

Komposition

Die Komposition ist der Spezialfall einer Aggregation, bei der das Teil ohne sein Ganzes nicht existieren kann.
Ein Teil kann höchstens zu einem Ganzen gehören.

komposition

Sequenzdiagramm

Kurzfassung

Interaktionsrahmen

Ein Sequenzdiagramm wird innerhalb eines Interkationsrahmen gezeichnet.

Nachrichten

Synchrone Nachrichten werden mit einer geschlossenen Pfeilspitze symbolisiert,
asynchrone Nachrichten mit einer offenen Pfeilspitze.

Fragmente

Mit Fragmenten können Bedingungen oder Optionen dargestellt werden.

Interaktionsrahmen

Ein Sequenzdiagramm wird innerhalb eines Interaktionsrahmen gezeichnet.
Der name ist eindeutig und beginnt mit dem Kürzel sd.

sequenzdiagramm

Lebenslinie

Jedes Objekt besitzt eine Lebenslinie, welche gestrichelt angezeigt wird.
Objektnamen werden unterschrichten.
Die Verschiedenen Objekte sind nebeneinander angeordnet.
Personen werden als Strichmännchen und Systeme (bzw. Objekte von Klassen) als Rechtecke dargestellt.
Die Lebenszeit eines Objektes endet mit einem Kreuz am Ende der Lebenslinie.

sequenzdiagramm

Aktivitäten

Wenn ein Objekt eine Aktivität durchführt, dann wird dies durch einen Aktivitätsbalken dargestellt.
Die restliche Zeit (gestrichelte Zeit) ist die passive Zeit.

sequenzdiagramm

Synchrone Nachrichten

Synchrone Nachrichten werden durch eine Linie mit einer geschlossenen Pfeilspitze symbolisiert.
Rückmeldungen werden durch eine gestrichelte Linie mit einem offenem Pfeil dargestellt.

sequenzdiagramm

Antworten können auch Rückgabewerte enthalten.

sequenzdiagramm

Asynchrone Nachrichten

Asynchrone Nachrichten werden durch eine Linie mit einer offenen Pfeilspitze dargestellt.
Der Sender der Nachricht wartet nicht auf eine Antwort, sondern führt seine Aktionen weiter durch.

sequenzdiagramm async

Fragmente

Mit Fragmenten können Bedingungen oder Optionen dargestellt werden.

Alternativen

Die Alternative bietet zwei Möglichkeiten an, welche an eine Bedingung geküpft ist.
Die Bedingung wird in eckigen Klammern definiert.
Die Alternative ist mit der Selektion if else vergleichbar.
Die Beiden Alternativen werden durch eine gestrichelte Linie getrennt.

sequenzdiagramm alternativen

Option

Die Option wird verwendet, wenn der else Zweig nicht benötigt wird.

sequenzdiagramm optionen

Parallele Ausführung

Die Parallele Ausführung wird verwendet, wenn die Nachrichten parallel oder in beliebiger Reihenfolge gesendet werden soll.

sequenzdiagramm parallel

Schleifen

loop(*)            beliebig viele Wiederholungen
loop(10)           Genau 10 Wiederholungen
loop(1, 5)         Mindestens 1, maximal 5 Wiederholungen
loop(Bedingung)    Solange die Bedingung true ist 
sequenzdiagramm schleifen

Arrays

Kurzfassung

array overvieww

Eindimensionale Arrays

int [] values = new int[10];  
int i;
for (i = 0; i < 10; i++) {
    values[i] = i * 10;
}

// RESULT
index i:    0    1   2   3   4   5   6   7   8   9   
values[i]:  0   10  20  30  40  50  60  70  80  90   

Zweidimensionale Arrays

int [][] table = {
    {5,3,7,2},
    {8,6,9,1},
    {2,7,3,4}
};

for (int i = 0; i < table.length; i++) {
    for (int z = 0; z < table[0].length; z++) {
        System.out.print(table[i][z] + "  ");
    }
    System.out.println();
}  
two dimensional array

Dreidimensionale Arrays

float [][][] tables = new float[3][3][4];

...
...

tables [1][1][3] = 45.55;  
three dimensional array

Arraylist

Kurzfassung

Unterschied Array und ArrayList

Die Grösse eines Arrays kann nicht verändert werden.

Wichtige Methoden

.get()
.set()
.remove()
.size()

Loops

for loops sowie for each möglich

Arraylists sind dynamische Arrays die während der Laufzeit beliebig viele Elemente aufnhemen sowie auch wieder abgeben können.
Die ArrayList Klasse befindet sich in dem Paket java.util   (import java.util.ArrayList;)

ArrayList initzialisieren

Methode 1

// Syntax
ArrayList<Type> obj = new ArrayList<Type>();

// Beispiel:
ArrayList<Integer> intArray = new ArrayList<Integer>(); 

Methode 2

Wichtig:

Für diese Methode wird das Packet java.util.Arrays benötigt

// Syntax
ArrayList<Type> obj = new ArrayList<Type>(
Arrays.asList(Obj A, Obj C,..));

// Beispiel
ArrayList<Integer> intArray = new ArrayList<Integer>(
                Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));
                
System.out.println(intArray);                

// RESULT
[1, 2, 3, 4, 5, 6, 7, 8] 

Wichtige Methoden

Elemente an bestimmter Position verändern

 ArrayList<Integer> intArray = new ArrayList<Integer>();

        intArray.add(1);
        intArray.add(2);
        intArray.add(3);

        intArray.set(1, 1000);
        System.out.println(intArray);
        
// RESULT
[1, 1000, 3]
  

Elemente entfernen

        ArrayList<Integer> intArray = new ArrayList<Integer>();

        intArray.add(1);
        intArray.add(2);
        intArray.add(3);
        intArray.add(4);
        intArray.add(5);
        intArray.add(6);

        intArray.set(1, 1000);

        intArray.remove(4);
        System.out.println(intArray);
        
// RESULT
[1, 1000, 3, 4, 6]
  

Anzahl Elemente in einer ArrayList herausfinden

        ArrayList<Integer> intArray = new ArrayList<Integer>();

        intArray.add(1);
        intArray.add(2);
        intArray.add(3);
        intArray.add(4);
        intArray.add(5);
        intArray.add(6);

        intArray.set(1, 1000);

        intArray.remove(4);

        System.out.println(intArray.size());
        
// RESULT
5
  

Element an einer bestimmten Position zurückgeben

ArrayList<Integer> intArray = new ArrayList<Integer>();

        intArray.add(1);
        intArray.add(2);
        intArray.add(3);
        intArray.add(4);
        intArray.add(5);
        intArray.add(6);

        System.out.println(intArray.get(5));
        
// RESULT
6
  

Methoden überladen

Kurzfassung

Eigenschaften einer Methode

- Methodenname
- Parameterliste
- Rückgabewert

Konstruktor

auch ein Konstruktor kann überladen werden.

Class Person {
    private String name = "Meier";
    
    public String getName() {
        return this.name;
    }
}
Class Overloading {
    
    public void ausgabe(Person personParam) {
        System.out.println(personParam.getName());
    }
    public void ausgabe(int intParam) {
        System.out.println(intParam);
    }
}  
Scroll to Top