Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Grundlagen der Programmierung: Objektorientiertes Design

Klassendiagramme

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Klassendiagramme stellen das Fundament sämtlicher objektorientierter Designs dar. Diese beinhalten die späteren Klassen und ermöglichen einen Überblick über die Inhalte, welche später im Code umgesetzt werden müssen.

Transkript

Ein Klassendiagramm, das kommt von UML, also der Unified Modeling Language, und das ist in vielen Fällen immer gleich aufgebaut. Wir haben drei Bereiche, ganz oben habe ich den Namen, der steht hier jetzt schon auf Englisch da, Product, und das liegt daran, dass wir schon ganz schön nahe an den Code herankommen. Das heißt, wir verwenden die Klassennamen, die wir später auch in unserem Code verwenden, in unseren Code Editor eintippen. Und da gibt es ja immer die alte Diskussion, ob man Klassennamen der auch Funktionsnamen, Methodenaufrufe, ob man die auch als deutschsprachiger Programmierer auf Englisch schreiben soll. Ich persönlich habe mich dafür entschieden, das auf Englisch zu machen, gerade wenn man Open Source programmiert oder wenn man in größeren Teams programmiert, dann ist Englisch oftmals die gemeinsame Sprache, aber je nachdem wie Sie das für sich entschieden haben, steht hier dann bei Ihnen eben nicht Product, sondern Produkt. Im großen mittleren Kästchen, da stehen dann die ganzen Attribute, die ganzen Eigenschaften, also unser Produkt, das hat einen Namen, unser Produkt hat einen Status, ob es aktiv ist oder nicht. Unser Produkt hat ein launchDate, also ein Datum, an dem es aufgenommen worden ist in unser Produktportfolio und es hat natürlich auch eine Produktnummer. In dem Fall heißt das hier itemNumber. Was hier blau markiert ist, das schauen wir uns gleich im nächsten Schritt an, aber zuvor möchte ich noch mal einen Blick auf den unteren Bereich werfen. Hier haben wir dann die verschiedenen Methoden, also das Verhalten unseres Objektes bzw. unserer Klasse. Es hat hier einen getName, also gib mir den Namen zurück, setze den Status aktiv oder nicht aktiv, also ob das Produkt gerade aktiv verkauft werden kann oder nicht. Liefere mir die Produktdetails, zeige das Produkt und formatiere die Produktdetails. Schauen wir uns mal der Reihe nach an, was dieses Blau hier ist. Ich habe es hier in diesem Beispiel nur deswegen blau gemacht, damit man man's besser erkennen kann. Normalerweise sind diese Farben irrelevant bzw. Sie schreiben alles in derselben Farbe. Mit einem Doppelpunkt füge ich dann an, welcher Typ dieses Attribut hat, also ob es sich beispielsweise um eine Zeichenkette, einen String handelt, ob es einfach nur ein einfacher ja/nein Wert ist, also ein boolischer Wert, ob es ein Datumswert ist, eine Integerzahl oder was auch immer. Hier empfehle ich, selbst wenn Sie das alles auf Deutsch bezeichnen, dass Sie hier auch Englisch das Ganze lassen, denn String, Boolean, Date, das sind einfach die Typen von Variablen, für die es zwar deutsche άbersetzungen gibt, wie Zeichenkette oder boolscher Wert, aber ein String, das ist so ein gebräuchlicher Begriff in der Programmierung, dass ich das auf jeden Fall auf Englisch lassen würden. Wir sehen diesen Doppelpunkt auch hier unten manchmal nicht immer bei getProductDetails, da wird ein String zurückgeliefert, genauso wie bei getName. Bei setActive habe ich es weggelassen. Hier unten bei den Operationen bedeutet der Doppelpunkt, das ist der Typ der Variablen, die zurückgeliefert wird. Das heißt, wenn ich mir also den Namen ausgeben lassen möchte, dann wird mir natürlich hier ein String zurückgeliefert, nämlich genau dieser String hier oben. Und das Gleiche passiert bei getProductDetails. Wenn ich den Status meines Produktes auf aktiv oder nicht aktiv setze, dann könnten wir es so machen, dass ich auch einen boolschen Wert zurückbekomme, nämlich jetzt ist das Ganze aktiv oder nicht, aber in dem Fall habe ich es hier weggelassen. Das heißt, die Methode setActive würde hier dann auch keinen Rückgabewert zurückliefern, sondern einfach nur den Auftrag ausführen, ein Produkt auf aktiv setzen oder eben auch nicht. Eins ist Ihnen wahrscheinlich schon aufgefallen: Vor diesen einzelnen Zeilen habe ich hier Minus- bzw. Pluszeichen. Was bedeutet das? Ein Minuszeichen bedeutet, das ist ein privater Wert oder eine private Methode. Das bedeutet, ich kann von außen von außerhalb des Objektes nicht direkt auf den Namen zugreifen, weil ich hier ihn eben auf Privat gesetzt habe oder später auf Privat setzen möchte, sondern ich muss von außen zuerst nach getName gehen. Das ist von außen erreichbar, deswegen dieses Pluszeichen und dieses getName liefert mir dann den Namen zurück. Grundsätzlich gilt ja, dass wir in einem Objekt bzw. in einer Klasse möglichst viel auf Privat gesetzt haben sollten und dass wir hier nur über Methoden auf die einzelnen Attribute zugreifen. Das heißt, auch auf launchDate kann ich von außen nicht direkt zugreifen, sondern wir würden es jetzt hier auch erkennen, dass es fehlt. Ich müsste erst hier unten eine Methode definieren, die heißt dann zum Beispiel getLaunchDate und diese Methode, die ist öffentlich und die holt sich dann eben dieses launchDate. Dieses formatProductDetails, das ist eine Methode, die nur intern verwendet wird, die auf Privat gesetzt ist und deswegen habe ich hier eben auch das Minuszeichen. Zusammenfassend kann man sagen, wir sind hier mit diesem Klassendiagramm schon sehr nah an unserem Code. Das heißt, wir haben hier auch genau den Klassennamen, den wir später in unseren Code Editor eintippen, also die Frage, ob Englisch oder Deutsch, die haben wir ja schon beantwortet, aber man kann hier sich auch schon darauf festlegen, wie man die Schreibweise hat. Also Klassen werden in den meisten Sprachen mit einem Großbuchstaben begonnen und genauso die Attribute. Wenn sie nur aus einem Begriff bestehen, haben einen Großbuchstaben, wenn es mehrere Begriffe sind, dann hab ich hier mich jetzt für CamelCase entschieden. Das heißt, verschiedene Wortbestandteile füge ich direkt nahtlos aneinander und beginne eben jeden neuen Wortbestandteil mit einem großen Buchstaben. Sie können sich aber auch hier dafür entscheiden, zum Beispiel mit Unterstrichen zu arbeiten oder was auch immer in Ihrer Sprache üblich ist. Hier unten habe ich dann mit getName und setActive auch eine Namenskonvention verwendet, dass ich sage, immer wenn ich hier ein Attribut verändern möchte, wenn ich es mir anzeigen lassen möchte, dann verwende ich get, und wenn ich ein Attribut verändern möchte, dann verwende ich set. Das ist eine Konvention, die von Sprache zu Sprache unterschiedlich ist, wo Sie für sich einfach den Weg finden müssen. Solche Klassendiagramme, die können ja recht schnell auch unübersichtlich oder sehr groß und lang werden. Dann haben Sie die Möglichkeit, hier auch Notizen anzufügen. Beachten Sie, hier oben habe ich ein kleines Eselsohr rein gezeichnet und das habe ich nicht einfach nur so zum Spaß gemacht, sondern ich zeige damit, dass das hier keine Klasse oder kein Akteur ist, sondern dass es eine Notiz sein soll und deswegen eben hier diese kleine Ecke hier oben. Mit solchen Klassendiagrammen bereiten Sie sich darauf vor, dass Sie ganz bald an den Code Editor rangehen und dieses Klassendiagramm auch in tatsächlichen Code umsetzen.

Grundlagen der Programmierung: Objektorientiertes Design

Lernen Sie alle Grundbegriffe und Methoden von objektorientiertem Design kennen und holen Sie sich das Rüstzeug, um bald Ihre eigene Softwareprojekte zu starten.

2 Std. 43 min (45 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:23.05.2014
Laufzeit:2 Std. 43 min (45 Videos)

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!