Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m320_2024:learningunits:lu01:objekt_grundlagen [2024/04/18 18:15] – angelegt - Externe Bearbeitung 127.0.0.1modul:m320_2024:learningunits:lu01:objekt_grundlagen [2024/08/12 06:25] (aktuell) – [Beispiel: Türe] msuter
Zeile 1: Zeile 1:
 ===== LU01a - Was ist ein Objekt? ===== ===== LU01a - Was ist ein Objekt? =====
-Zuerst müssen wir unterscheiden, ob wir den Begriff aus einer allgemeinen, umgangssprachlichen Sicht nutzen oder eben im Umfeld der objektorientierten Programmierung (OOP).\\+Zuerst müssen wir unterscheiden, ob wir den Begriff aus einer allgemeinen, umgangssprachlichen Sicht nutzen oder eben im Umfeld der objektorientierten Programmierung (OOP).
 Umgangssprachlich verstehen wir unter einem Objekt einen Gegenstand, also ein Haus, ein Auto, einen Pinsel, eine Türe usw.  Umgangssprachlich verstehen wir unter einem Objekt einen Gegenstand, also ein Haus, ein Auto, einen Pinsel, eine Türe usw. 
 Diese Objekte können durch **Eigenschaften** beschrieben werden.  Diese Objekte können durch **Eigenschaften** beschrieben werden. 
 So weist ein Auto z.B. eine Marke, einen Typ, eine Farbe usw. auf. So weist ein Auto z.B. eine Marke, einen Typ, eine Farbe usw. auf.
 +
 Objekte können  Objekte können 
   * sehr unterschiedlicher Art sein (z.B. Baum und Flugzeug).   * sehr unterschiedlicher Art sein (z.B. Baum und Flugzeug).
Zeile 9: Zeile 10:
   * in einer Hierarchie zueinander stehen (z.B. Fahrzeug als Oberbegriff von Auto), wobei gewisse Objekte real nicht existieren sondern nur der Verallgemeinerung eines Begriffes dienen.   * in einer Hierarchie zueinander stehen (z.B. Fahrzeug als Oberbegriff von Auto), wobei gewisse Objekte real nicht existieren sondern nur der Verallgemeinerung eines Begriffes dienen.
  
-|  {{:modul:m320:learningunits:lu01:lu1_objekte_-_2.png?200|}}  |  {{:modul:m320:learningunits:lu01:lu1_objekte_-_1.png?280|}}  |  {{:modul:m320:learningunits:lu01:lu1_objekte_-_3.png?350|}} +|  {{.:verschiedene_objekte.png?200|}}  |  {{.:gleichartige_objekte.png?280|}}  |  {{.:abstrakter_oberbegriff.png?350|}} 
-|  //Abb:// verschiedene Objekte  |  //Abb:// Objekte gleicher Art  |  //Abb:// Objekte eines abstrakten Oberbegriffes (hier Säugetier)  |+|  //Abb. verschiedene Objekte // |  //AbbObjekte gleicher Art//   //AbbObjekte eines abstrakten Oberbegriffes (hier Säugetier) // |
  
  
 In der OOP gehen wir nun aber einen Schritt weiter.  In der OOP gehen wir nun aber einen Schritt weiter. 
 "Unsere" Objekte sollen ja etwas ausführen können, das heisst, dass sie selbständig funktionsfähig sind. "Unsere" Objekte sollen ja etwas ausführen können, das heisst, dass sie selbständig funktionsfähig sind.
 +
 Ein Buch kann also z.B.  Ein Buch kann also z.B. 
   * seinen Titel, die Autorin, den Verlag usw. nennen   * seinen Titel, die Autorin, den Verlag usw. nennen
Zeile 20: Zeile 22:
   * den enthaltenen Text liefern   * den enthaltenen Text liefern
   * usw.   * usw.
 +
 Diese Denkweise ist fürs Erste sicher gewöhnungsbedürftig.  Diese Denkweise ist fürs Erste sicher gewöhnungsbedürftig. 
 Um Objekte in Software abzubilden, ist es aber unumgänglich, sich auf ein Rollenspiel einzulassen und sich gedanklich in die entsprechenden Objekte zu versetzen und so deren Aktivitäten und Zustände zu erkennen. Um Objekte in Software abzubilden, ist es aber unumgänglich, sich auf ein Rollenspiel einzulassen und sich gedanklich in die entsprechenden Objekte zu versetzen und so deren Aktivitäten und Zustände zu erkennen.
-[[wpde>Objekt_(Programmierung)]] 
  
----- +Siehe auch [[wpde>Objekt_(Programmierung)]] 
-=== Beispiel: Türe ===+ 
 +==== Beispiel: Türe ====
 Eine Türe verfügt über Eigenschaften wie Höhe, Breite, Farbe, Material. Eine Türe verfügt über Eigenschaften wie Höhe, Breite, Farbe, Material.
 Daneben kennt sie auch Zustände wie offen, geschlossen, verriegelt. Daneben kennt sie auch Zustände wie offen, geschlossen, verriegelt.
Zeile 33: Zeile 36:
 Die **Delegation** ist eines der ganz wichtigen Prinzipien der OOP. Die **Delegation** ist eines der ganz wichtigen Prinzipien der OOP.
  
-//Das Prinzip der Delegation wird in einer späteren Learning Unit vertieft behandelt.// +<WRAP center round info 60%> 
-----+Das Prinzip der Delegation wird in einer späteren Learning Unit vertieft behandelt. 
 +</WRAP> 
  
 Der oben beschriebene Sachverhalt lässt sich bezüglich der Zustände der Türe grafisch als Zustandsdiagramm darstellen.  Der oben beschriebene Sachverhalt lässt sich bezüglich der Zustände der Türe grafisch als Zustandsdiagramm darstellen. 
 Es zeigt die **Zustände** sowie die nötigen **Effekte** (Fähigkeiten, Funktionen) auf, die zu einem Zustandswechsel (Transition) führen. Es zeigt die **Zustände** sowie die nötigen **Effekte** (Fähigkeiten, Funktionen) auf, die zu einem Zustandswechsel (Transition) führen.
  
-{{:modul:m320:learningunits:lu01:theorie:lu01-abb1.4_-_zustandsdiagramm.png?400|}}+{{.:uml_zustand_tuere.png?400|}}
  
-//Abb:// Zustandsdiagramm zu Türe+//AbbZustandsdiagramm zu Türe//
  
 [[wpde>Zustandsdiagramm_(UML)]] [[wpde>Zustandsdiagramm_(UML)]]
  
 ---- ----
-[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) René Probst, bearbeitet durch Marcel Suter+{{tag>M320-LU01}} 
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] René Probst, bearbeitet durch Marcel Suter
  • modul/m320_2024/learningunits/lu01/objekt_grundlagen.1713456902.txt.gz
  • Zuletzt geändert: 2024/04/18 18:15
  • von 127.0.0.1