Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
de:modul:m320_2024:learningunits:lu01:objekt_grundlagen [2026/08/30 14:05] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1de:modul:m320_2024:learningunits:lu01:objekt_grundlagen [2026/08/30 14:05] (aktuell) – ↷ Seite von modul:m320_2024:learningunits:lu01:objekt_grundlagen nach de:modul:m320_2024:learningunits:lu01:objekt_grundlagen verschoben msuter
Zeile 1: Zeile 1:
 +===== 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).
 +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. 
 +So weist ein Auto z.B. eine Marke, einen Typ, eine Farbe usw. auf.
  
 +Objekte können 
 +  * sehr unterschiedlicher Art sein (z.B. Baum und Flugzeug).
 +  * von der gleichen Art aber einer unterschiedlichen Ausprägung sein (z.B. rotes und ein grünes Fahrrad).
 +  * 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.
 +
 +|  {{.: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)// |
 +
 +
 +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.
 +
 +Ein Buch kann also z.B. 
 +  * seinen Titel, die Autorin, den Verlag usw. nennen
 +  * sich öffnen und eine bestimmte Seite anzeigen
 +  * den enthaltenen Text liefern
 +  * usw.
 +
 +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.
 +
 +Siehe auch [[wpde>Objekt_(Programmierung)]]
 +
 +==== Beispiel: Türe ====
 +Eine Türe verfügt über Eigenschaften wie Höhe, Breite, Farbe, Material.
 +Daneben kennt sie auch Zustände wie offen, geschlossen, verriegelt.
 +Um die verschiedenen Zustände zu erreichen, muss die Türe also über Fähigkeiten verfügen, so z.B. öffnen und schliessen. 
 +Für das ver- und entriegeln ist aber nicht die Türe sondern das Schloss zuständig. 
 +Diese Aufgaben werden also delegiert. 
 +Die **Delegation** ist eines der ganz wichtigen Prinzipien der OOP.
 +
 +<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. 
 +Es zeigt die **Zustände** sowie die nötigen **Effekte** (Fähigkeiten, Funktionen) auf, die zu einem Zustandswechsel (Transition) führen.
 +
 +{{.:uml_zustand_tuere.png?400|}}
 +
 +//Abb. Zustandsdiagramm zu Türe//
 +
 +[[wpde>Zustandsdiagramm_(UML)]]
 +
 +----
 +{{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
  • de/modul/m320_2024/learningunits/lu01/objekt_grundlagen.txt
  • Zuletzt geändert: 2026/08/30 14:05
  • von msuter