♦️
ICT-BZ: Modul 318 - Objektbasiert programmieren mit Komponenten
  • Intro
  • πŸ—“οΈKursplanung und Organisation
  • πŸ› οΈInfrastruktur und Tools
  • ❓FAQ
    • ❓.NET Desktop Development in Visual Studio nachinstallieren
    • ❓WinForms DataGridView
  • Tag 1
    • πŸ“–C# Grundlagen
    • πŸ’‘Γœbung C# Grundlagen
    • πŸ“–OOP Grundlagen
      • πŸ“–πŸ’‘ Exkurs: Objektdiagramm
    • πŸ’‘Methodik & Prozessmodelle
    • πŸ“–Vorgehensweisen
    • ❓Visual Studio & WinForms
    • πŸ’‘πŸ“– Aufgabensammlung
  • Tag 2
    • πŸ“–UI, UX, Usability
    • πŸ“–Analyse & Design
    • πŸ’‘Projektanforderungen analysieren
    • πŸ’‘Mockup Erstellen
  • Tag 3 - 4
    • πŸ“–Code QualitΓ€t
    • πŸ“–πŸ’‘ Coderichtlinien
    • πŸ“–Testing
      • ❓Testplan: Praxisbeispiel
      • ❓Testprotokoll: Praxisbeispiel
    • ❓Debugging
  • Projektarbeit
    • πŸ’‘Anforderungen und Dokumentation
      • SwissTransport API
    • πŸ› οΈProjektsetup
    • ❓Git Commit und Push in Visual Studio
    • πŸŽ“Bewertungsraster
    • 🚩Projektabgabe
      • πŸš©πŸ“– Binaries, Installer & GitHub Release
Powered by GitBook
On this page
  • Das Objektdiagramm
  • Beispiel
  • Ausgangslage
  • 1. Schritt
  • 2. Schritt
  • 3. Schritt
  • 4. Schritt
  • 5. Schritt
  • 6. Schritt
  • 7. Schritt
  • 8. Schritt
  • πŸ’‘ Aufgabe
Export as PDF
  1. Tag 1
  2. OOP Grundlagen

πŸ“–πŸ’‘ Exkurs: Objektdiagramm

PreviousOOP GrundlagenNextMethodik & Prozessmodelle

Last updated 4 years ago

Das Objektdiagramm

Ein Objektdiagramm ist im Gegensatz zum Klassendiagramm eine Momentaufnahme eines Programms. Auch fΓΌr das Objektdiagramm gibt es einen UML Standard. Nachfolgend seht ihr ein Objektdiagramm mit einem einzelnen Objekt.

Beispiel

Gegeben sind folgende Klassen:

public class Baum
{
    int _hoehe, _breite;
    
    public Baum(int hoehe, int breite)
    {
        _hoehe = hoehe;
        _breite = breite; 
    }
    public int Hoehe
    {
        get { return _hoehe; }
    }
    public int Breite
    {
        get { return _breite; }
    }
}

public class Punkt
{
    int _x, _y;
    public Punkt(int x, int y)
    {
        _x = x;
        _y = y;
    }
    public int X
    {
        get { return _x; }
        set { _x = value; }
    }
    public int Y
    {
        get { return _y; }
        set { _y = value; }
    }
}

Ausgangslage

string s = "abcd";
int[] a1 = { 1, 2, 3, 4 };
byte b = 56;
Punkt p = new Punkt(a1[0], 100); 
Baum[] ba = new Baum[3];
Baum baum = new Baum(80, 2);

Ausgangslage 1. Schritt

string s = "abcd";

Ausgangslage 2. Schritt

int[] a1 = { 1, 2, 3, 4 };

Ausgangslage 3. Schritt

byte b = 56;

Ausgangslage 4. Schritt

Punkt p = new Punkt(a1[0], 100); 

Ausgangslage 5. Schritt

Baum[] ba = new Baum[3];

Ausgangslage 6. Schritt

Baum baum = new Baum(80, 2);

1. Schritt

a1[0] = b;

2. Schritt

ba[1] = new Baum(2, 3); 

3. Schritt

ba[2] = baum;

Beachte, dass das Objekt nicht kopiert wird. Es gibt jetzt lediglich eine zweite Referenz auf dieses Objekt. Es existiert aber nur einmal im Speicher.

4. Schritt

Baum neuerBaum = ba[0];

5. Schritt

a1[0] = baum.Hoehe;

6. Schritt

p.Y = baum.Hoehe;

7. Schritt

ba = null;

Da es keine Referenz mehr auf das Baum Array gibt, wird dies irgendwann vom Garbage Collector abgerΓ€umt und aus dem Speicher gelΓΆscht. Dasselbe passiert dann mit dem Objekt unten rechts, da es keine Referenz mehr darauf gibt.

8. Schritt

p.X = s.Length;

So ergibt sich schlussendlich dieses Objektdiagramm:

πŸ’‘ Aufgabe

Zeichne das Objektdiagramm auf Papier nach der AusfΓΌhrung des folgenden Codes:

ba = new Baum[] { neuerBaum, baum, new Baum(50, 8) };

Quelle:

In diesem Beispiel gehen wir das Beispiel aus durch und zeichnen Schritt fΓΌr Schritt ein Objektdiagramm. Wichtig dabei, das Objektdiagramm ist immer eine Momentaufnahme, es Γ€ndert sich also nach jeder Zeile Code, die ausgefΓΌhrt wurde.

πŸ“–
http://mbse.se-rwth.de/book1/index.php?c=chapter4-1
Aufgabe 11 der Übung C# Grundlagen