Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:objekt-orientierte_programmierung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:objekt-orientierte_programmierung [2016-12-20 07:55] – [Klassendiagramme] marco.bakeraschule:objekt-orientierte_programmierung [2019-12-24 13:29] (aktuell) – Klassendiagramm ausgelagert marco.bakera
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 =====
  
-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 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.1482216938.txt.gz · Zuletzt geändert: 2017-04-19 08:39 (Externe Bearbeitung)