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 [11.12.2016 10:31]
Marco Bakera Klassendiagramme in IHK-Prüfungen
schule:objekt-orientierte_programmierung [24.12.2019 13:29] (aktuell)
Marco Bakera Klassendiagramm ausgelagert
Zeile 11: Zeile 11:
  
 Einige dieser Diagramme werden in den folgenden Abschnitten beschrieben. Einige dieser Diagramme werden in den folgenden Abschnitten beschrieben.
 +
 ===== Ein Beispiel: Max und Moni ===== ===== Ein Beispiel: Max und Moni =====
  
Zeile 47: Zeile 48:
 ===== Klassendiagramme ===== ===== Klassendiagramme =====
  
-Gleichartige Objekte haben Eigenschaften (Attribute) gemeinsam. 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 einen ggf. 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 [[https://​tbs1.de/​owncloud/​index.php/​s/​JYjVjcflcRvGfLE|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 +→ [[Aktivitätsdiagramm]]
-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 [[https://​tbs1.de/​owncloud/​public.php?​service=files&t=2247927edec78ea54ca13aeb8f12823b|UML Pocket Reference (Acitivity Diagrams)]].+===== Links =====
  
-===== Links ===== 
-  * [[https://​tbs1.de/​owncloud/​public.php?​service=files&​t=09e171fc725b1b99d42ac367247840c4|UML-Diagramme (Übersicht)]] 
   * [[https://​dzone.com/​refcardz/​getting-started-uml|UML Reference Card]] - Übersicht der wichtigsten Elemente der UML-Notation.   * [[https://​dzone.com/​refcardz/​getting-started-uml|UML Reference Card]] - Übersicht der wichtigsten Elemente der UML-Notation.
   * [[http://​oszhdl.be.schule.de/​gymnasium/​faecher/​informatik/​oop/​index.htm|Informationen zur OOP]] des Oberstufenzentrum Handel 1.   * [[http://​oszhdl.be.schule.de/​gymnasium/​faecher/​informatik/​oop/​index.htm|Informationen zur OOP]] des Oberstufenzentrum Handel 1.
schule/objekt-orientierte_programmierung.1481448713.txt.gz · Zuletzt geändert: 19.04.2017 08:39 (Externe Bearbeitung)