Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:objekt-orientierte_programmierung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:objekt-orientierte_programmierung [21.12.2019 13:51]
Marco Bakera owncloud link enternt.
schule:objekt-orientierte_programmierung [24.12.2019 13:29] (aktuell)
Marco Bakera Klassendiagramm ausgelagert
Zeile 48: Zeile 48:
 ===== Klassendiagramme ===== ===== Klassendiagramme =====
  
-Häufig stellt man fest, dass es Objekte gibt, die sich in ihren Eigenschaften oder Verhalten (Attributen oder Methoden) ähneln. Diese Gemeinsamkeiten werden in Klassen zusammengefasst. Zusätzlich haben Klassen ​[[Methoden]], die aufgerufen werden können. Alle Objekte einer Klasse haben den gleichen Aufbau und verhalten sich ähnlich. Man kann sie übersichtlich in [[wpde>Klassendiagramm|Klassendiagrammen]] darstellen. +→ [[Klassendiagramm]]
- +
-==== Aufbau und Zweck ==== +
- +
-{{:​schule:​prog:​klassendiagramm_beispiel.png|}} +
- +
-  * Warum? Um Übersicht über ein komplexes Programm zu erhalten. +
-  * Für jede Klasse wird ein Kasten gezeichnet. +
-  * Der Kasten hat drei Bereiche: +
-    - oben steht der Klassenname +
-    - in der Mitte stehen die Attribute +
-    - unten stehen die Methoden +
-  * Rückgabewerte von Methoden und Datentypen von Attributen und Parametern stehen am Ende und sind durch einen Doppelpunkt getrennt. +
-  * Sichtbarkeiten public/​private/​protected werden durch +/-/# abgekürzt. +
-  * Beziehungen zwischen Klassen lassen sich darstellen: "​besteht aus", "erbt von" +
- +
-=== Klassen in C# und Python === +
-Klassen werden in C# mit dem Schlüsselwort ''​class''​ beschrieben. Attribute werden zu Beginn gelistet und haben einen Typ gefolgt von einem Namen. [[Methoden]] haben einen Namen (häufig ein Verb), ggf. Parameter und einen Rückgabewert (''​void'',​ falls es keinen gibt). +
- +
-<code csharp>​ +
-class Person +
-+
-  string name; +
-  int alter; +
-   +
-  public string erfrageName() +
-  { +
-    return name; +
-  } +
-   +
-  public int erfrageAlter() +
-  { +
-    return alter; +
-  } +
-   +
-  public void alterFestlegen(int neuesAlter) +
-  { +
-    alter = neuesAlter;​ +
-  } +
-   +
-  public void laufen() +
-  { +
-    // ... +
-  } +
-  public void essen(Nahrung nahrungsMittel) +
-  { +
-    nahrungsmittel.aufessen();​ +
-  } +
-+
-</​code>​ +
- +
-Klassen werden in Python mit dem Schlüsselwort ''​class''​ beschrieben. Attribute werden im Konstruktor ''<​nowiki>​__init__(self)</​nowiki>''​ mit ''​self''​ an die erzeugte Instanz gebunden. [[Methoden]] haben einen Namen (häufig ein Verb), ggf. Parameter und ggf. einen Rückgabewert. +
- +
-<code python>​ +
-class Person: +
- +
-    def __init__(self):​ +
-        self.name = ""​ +
-        self.alter = 0 +
-   +
-    def erfrage_Name(self):​ +
-        return self.name +
- +
-    def erfrage_Alter():​ +
-        return self.alter +
- +
-    def alter_Festlegen(self,​ neues_Alter):​ +
-        self.alter = neues_Alter +
- +
-    def laufen(): +
-        # ... +
-        pass +
- +
-    def essen(self, nahrungsMittel):​ +
-        nahrungsmittel.aufessen() +
-</​code>​ +
- +
-//Kapitel 8: Objektorientierte Programmierung//​ in dem Buch //Raspberry Pi programmieren mit Python// beschreibt, wie die Objekt-Orientierte Programmierung in [[Python]] realisiert wurde.  +
- +
-==== Klassendiagramme in Visual Studio ==== +
- +
-Visual Studio unterstützt den Entwickler, da es Klassendiagramme nahtlos in die Entwicklungsumgebung integriert. +
- +
-<​html>​ +
-<iframe src="//​player.vimeo.com/​video/​22473499"​ width="​400"​ height="​290"​ frameborder="​0"></​iframe>​ +
-</​html>​ +
- +
- +
-==== Klassendiagramme für Python ==== +
- +
-Mit dem Programm ''​pyreverse''​ können Klassendiagramm aus Python-Quelltext automatisch erstellt werden. Es ist Bestandteil des größeren Paketes [[https://​www.pylint.org/​|Pylint]],​ das den Quelltext analysieren und auf Fehler hinweisen kann.  +
- +
-Ein Klassendiagramm wird mit dem folgenden Aufruf erstellt  +
- +
-  pyreverse -o png -f ALL quelltext.py +
-   +
-Die Option ''​-o''​ gibt das Ausgabeformat und ''​-f''​ einen Filter an (ALL zeigt alle Zugriffsebenen:​ //private, public// und //​protected//​). Leider ermittelt das Programm keine Rückgabewerte und zeigt auch keine Parameter von Methoden an. +
- +
-==== Klassendiagramme in IHK-Prüfungen ==== +
- +
-Klassendiagramme kommen häufig in IHK-Prüfungen vor. So z.B. in //2015, Winter, Handlungsschritt 2//.+
  
 ===== Sequenzdiagramme ===== ===== Sequenzdiagramme =====
-[[wpde>​Sequenzdiagramm|Sequenzdiagramme]] können einen konkreten Ablauf in einem Programm darstellen. 
  
-{{:​schule:​prog:​sequenzdiagramm-allgemein.jpg?​nolink|}}+→ [[Sequenzdiagramm]]
  
-Für ein konkretes Beispiel sieht es folgendermaßen aus. 
  
-{{:​schule:​prog:​sequenzdiagramm_beispiel.png?​nolink|}} 
- 
-  * Sie dienen z. B. der Dokumentation komplexer Abläufe, an denen viele Objekte beteiligt sind 
-  * Jedes Objekt erhält eine eigene Lebenslinie,​ die von oben nach unten verläuft. 
-  * Name und Typ des Objektes -- getrennt durch einen Doppelpunkt -- werden an den Kopf der Lebenslinie geschrieben. Ist der Name nicht relevant, kann er entfallen. 
-  * Pfeile zu den Objekten beschreiben Methoden, die auf diesen Objekten aufgerufen werden. Die Pfeilspitze zeigt auf das Objekt, zu dem die Methode gehört. 
- 
-Unter [[https://​www.websequencediagrams.com/​|websequencediagrams.com]] lassen sich Sequenzdiagramme in einem Editor im Browser erstellen. 
 ===== Aktivitätsdiagramme ===== ===== Aktivitätsdiagramme =====
-{{:​schule:​prog:​uml-activity-beispiel2.png?​nolink|cc:​ von Wikipedia-Nutzer Gubaer. }} 
- 
-Das [[wpde>​Aktivitätsdiagramm]] beschreibt wie ein Struktogramm oder 
-Programm-Ablauf-Plan eine Funktionalität bzw. Aktivität in einem Programm. Einzelne //​Aktionen//​ werden durch abgerundete Kästen dargestellt und mit Pfeilen verbunden. //​Verzweigungen//​ werden durch eine Raute (◊) dargestellt. //​Bedingungen//​ für den weiteren Verlauf des Programms werden in eckigen Klammern an die ausgehenden Kanten notiert. //​Objekte//,​ die von den Aktionen erzeugt oder konsumiert werden, sind als Kästen ohne abgerundete Ecken dargestellt. 
  
-Details stehen in //UML Pocket Reference (Acitivity Diagrams)//​.+→ [[Aktivitätsdiagramm]]
  
 ===== Links ===== ===== Links =====
schule/objekt-orientierte_programmierung.1576932689.txt.gz · Zuletzt geändert: 21.12.2019 13:51 von Marco Bakera