Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Grundlagen der Programmierung: Datenstrukturen

Structs

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Structs stammen aus der Programmiersprache C und stellen eine einfache Gruppierung von Daten dar, allerdings ohne den Ballast von Methoden oder speziellem Verhalten.

Transkript

Wenn ich jetzt einfach nur Variablen gruppieren und dieser Gruppierung noch einen Namen geben möchte, ist der klassische Weg der, dass ich ein Struct im C-Stil verwende. Ein Struct ist Teil der Programmiersprache C und das seit über 40 Jahren. Es ist eine so erfolgreiche DatenStructur, dass es sogar in den Abwandlungen von C, wie C#, Objective C oder C++ in abgewandelter Form zum Einsatz kommt. Falls Sie noch nie etwas von einem Struct gehört haben, ist es jetzt wichtig, dass es sich dabei nicht um irgendeine informelle Phrase für irgendeine Art DatenStructur handelt, sondern tatsächlich um ein Schlüsselwort in C. Ein Struct ist also ein Teil der Sprache. Das Besondere daran ist, dass es sich im Unterschied zu diesem losen Zusammenschluss von Variablen wie hier in diesem Beispiel möglich ist, ein Struct zu erzeugen, ein Struct Book zum Beispiel, das dann in der Definition all das beinhaltet, was dieses Book ausmacht. Ich kann dann eine Variable erzeugen, in meinem Fall eine Variable namens first, und kann jetzt mit Hilfe der Punktsyntax die Membervariablen erzeugen. Was dann rauskommt, ist eben ein einfacher Datensatz namens first. Die Leute, die aus der objektorientierten Programmierung kommen, werden wahrscheinlich sagen, OK, das ist eine Klasse. Nein, ist es nicht. Es ist nämlich viel einfacher als eine Klasse. Sehen wir uns das Ganze mal etwas genauer an. Im Unterschied zur Klasse und zu Objekten haben nämlich Structs kein Verhalten, keine Methoden, es sind einfach Container für Daten. Nur eine Art, bestimmte Variablen zusammenzupacken, und das ist alles. Das heißt, Structs müssen nicht ausdrücklich instanziert werden so wie zum Beispiel Objekte. Und wir verwenden Worte wie new oder unlock nicht, sondern wir erzeugen einfach Structs. Für die unter Ihnen, die sich mit Referenzierungen oder Zeigern auskennen, mit Daten, die entweder mit Wert oder Referenzen herumgereicht werden: Structe sind Werttypen. Im Unterschied zu Objekten. Sie und ihre Inhalte sind typischerweise eher dem Stapel zugewiesen und nicht als Referenz auf einen anderen Speicherbereich. Natürlich stammen Structs aus dem Standard-C-Bereich. Das heißt, aus einem nicht objektorientierten Bereich. Sie selbst hat keine Klassen, keine Vererbung, keine Polymorphismen, und darum haben auch Structs so etwas nicht. Im Gegenteil: Wegen ihrer Einfachheit werden Structs oft als Plain Old Data Structures, also als PODS, bezeichnet. Sogar objektorientierte Sprachen mögen die Idee eines Structs und finden es nützlich. Wir brauchen das Zusatzgewicht einer Klasse nämlich nicht immer. Schauen wir uns das Ganze an einem Beispiel an. Stellen Sie sich vor, Sie haben ein grafisches Element und brauchen jetzt eine Variable, die einen bestimmten Punkt auf dem Bildschirm repräsentiert. Dafür brauchen Sie eigentlich nur zwei Zahlen, nämlich den Punkt auf der X- und auf der Y-Achse, also einmal X und einmal Y, Hier ist ein Struct nahezu ideal, denn Sie brauchen nicht mehr. Sie wollen nur diesen Punkt definiert wissen, und können jetzt diesen Typ Point einfach weiterreichen und mit ihm arbeiten. Und jetzt ein ähnliches Beispiel. Nämlich die Definition einer Farbe. Ich kann ein Struct Color erzeugen Dem gebe ich mit die Werte für Rot, Grün, Blau und den Alphakanal. Die Werte können in der Variablen vergeben werden und danke, das war's. Ohne großen Ballast, wie er dann normalerweise durch Klassen zustandekommt. Jetzt haben wir einen Punkt erreicht, wo's spannend wäre, sich anzusehen, wie die Sprachunterstützung bei Structen so läuft. Hier habe ich jetzt eine Zusammenstellung. Wobei eins wichtig ist: Es geht jetzt nicht "Da ist es gut", "Da schlecht", "Das macht es besser", sondern einfach nur, ob diese Idee eines Structs in dieser Sprache vorhanden ist oder nicht. Da Objective C direkt auf C aufbaut, gibt es sehr wohl eine Sprachenunterstützung für Structs und sie sind häufig in Verwendung, in iOS und auch im Cocoa Framework. In C# und bei anderen Erweiterungen aus der .NET-Familie existieren Structe ebenfalls. Sie sind einfache Werttypen, aber in .NET können noch einfache Methoden und Eigenschaften zu den Structen hinzugefügt werden. Obwohl Microsoft empfiehlt, eine Klasse zu erzeugen, damit unterschiedliche Funktionalitäten noch hinzugefügt werden können. Anders ist es in Java. In Java gibt es keine eigenen Structe, aber es gibt sogenannte Leichtgewichtsklassen, die kommen dem noch am nächsten. Genau so wenig arbeitet Python mit Structen, aber dort gibt's einen Weg, das Verhalten zu emulieren. Aber es gibt eben kein direktes Äquivalent. Auch in Ruby ist es so: Da existieren zwar Structe. Die haben aber mehr etwas von einfachen Klassen als von dem, was hinlänglich als Struct definiert werden würde. In ihrer ganzen Einfachheit sind Structe zwar schon sehr lange im Rennen, aber nach wie vor sehr beliebt. Sie haben auch ihren Weg in objektorientierte Sprachen gefunden, auch wenn Sie's nicht immer merken, weil es schon vom Framework, mit dem Sie arbeiten, umgesetzt wird.

Grundlagen der Programmierung: Datenstrukturen

Erhalten Sieeinen klaren Eindruck von Datenstrukturen und deren Eigenheiten und verstehen, wie Sie diese am besten einsetzen können – ganz unabhängig von den einzelnen Programmiersprachen.

2 Std. 51 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!