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: Basiswissen

Klassen und Objekte

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Klassen und Objekte sind die zentralen Bestandteile der objektorientierten Programmierung. Dabei stellen Klassen eine Kategorie für darin beinhaltete Objekte dar, welche auf einer Klasse basieren.

Transkript

Die einfachste Art und Weise, wie wir uns an Klassen und Objekte herantasten können, ist es, eingebaute Klassen zu verwenden. Das haben wir schon an verschiedenen Stellen gemacht, z.B. wenn wir schreiben: "var myArray =", und dann in eckigen Klammern z.B. "1, 2, 3, 4, 5", dann haben wir ein Objekt erzeugt; in dem Fall ein Array-Objekt. Oder wenn wir z.B. einen regulären Ausdruck verwenden, auch das ist nichts anderes als die Instanziierung einer eigenen Klasse in ein neues Objekt. Auf der anderen Seite gibt es neben diesen Objekten auch sogenannte Primitive, das heißt, wenn ich eine einfache Zahl in einer Variablen speichere, oder wenn ich nur einen Booleschen Wert habe wahr oder falsch -, dann nennt man das ein Primitiv. Ich kann mit diesem Primitiv nicht weiter arbeiten. Das sind relativ, sagen wir mal in Anführungszeichen, "dumme" Container von Daten, wohingegen ich mit den Objekten arbeiten kann. Ich kann mir z.B. von einem Array die Länge ausgeben. Diese Eigenschaft hat ein Primitiv nicht. Oder ich kann z.B. einen regulären Ausdruck prüfen und kann sagen: Befindet sich denn ein Teilstring innerhalb eines Gesamtstrings? Und falls das der Fall ist, kann ich damit weiter arbeiten? Das ist der grundsätzliche Unterschied von Objekten und Primitiven. JavaScript kommt mit einer Reihe von vorgefertigten Objekten daher; eins davon ist das "Date Object". Das stelle ich Ihnen jetzt vor. Wir können z.B. ein Date-Objekt erzeugen, wie wir das sonst auch machen, mit diesem Schlüsselwort "New", und dann gefolgt von dem Wort "Date". Das ist schon fest vorgegeben von JavaScript und beachten Sie: Dieser Klassenname fängt mit einem Großbuchstaben an. Das muss er eigentlich nicht zwingend, JavaScript schlägt es aber vor, dass man im Code auch leichter erkennt: Handelt es sich um ein Objekt oder nicht? Wir schreiben also dieses "New Date" jetzt in die Variable "Heute". Wir können beispielsweise auch, wenn wir nicht nur "Heute", sondern z.B. das Jahr 2000 den 1. Januar 2000 erzeugen möchten, dann erzeugen wir eine Variable, nennen die "Year 2K" und sagen "New Date". Dann übergeben wir diesem Objekt ein paar Argumente: "2000" für das Jahr, "0" übrigens für den Januar wir fangen die Monate bei 0 an zu zählen. Die Tage eines Monats fangen bei "1" an, deswegen: "2000,0,1". Wir können auch noch genauer gehen und sagen: der erste Moment in diesem Jahr. D.h., wir übergeben das Jahr 2000, den Monat 0, das ist der Januar -, den 1. Tag und die nächsten drei Ziffern, das sind die Stunden, die Minuten und die Sekunden, die in diesem Jahr schon vergangen sind. Das ist also genau der Moment, an dem die Silvesterraketen in die Luft gehen sollten. Wie jedes andere Objekt, oder wie jede andere Klasse auch, hat das Date-Objekt unterschiedliche Eigenschaften und unterschiedliche Methoden, z.B. "getMonth". Wir können mit diesem Zeilencode hier "var Heute = New Date" ganz oben, und dann darunter "Heute.getMonth" sagen: Welchen Monat haben wir denn heute? Das gibt in dem Fall zwischen "0" und "11" zurück, weil der Computer hier bei "0" anfängt zu zählen. Es sind ja immer 12 Monate zwischen "0" und "11" -, aber der erste hat nicht die Ordnungszahl "1", sondern die "0". Das ist ein bisschen komisch, aber in JavaScript oder sonst in der Programmierung ist es manchmal für einen Menschen etwas schwer zu verstehen. Es ist aber vollkommen logisch, wenn wir wissen: Wir fangen bei "0" an, dann können wir jedem Monat eine richtige Nummer geben. Wir können uns das ganze Jahr anzeigen lassen von unserem Heute-Objekt. Das basiert zum Glück nicht auf "0", D.h., wenn wir da eine "2013" zurückbekommen, dann meinen wir auch das Jahr 2013. Wir können auch den Tag eines Monats uns zurückgeben lassen, also "1" bis "31" in dem Fall. Auch das fängt bei "1" an, glücklicherweise, und nicht bei "0". D.h., nur die Monate, die wir ja im normalen Sprachgebrauch oft auch mit einem Wort belegen, wir sagen ja nicht "der 13.07.", sondern "der 13. Juli" z.B. -, nur das fängt bei "0" an, alles andere fängt tatsächlich richtig bei "1" an. Wir können uns den Tag der Woche zurückgeben lassen. Der fängt nicht wirklich bei "1" an, sondern der fängt auch bei "0" an. Allerdings ist die "0" der Sonntag, D.h., für uns im deutschen Sprachgebrauch, wo die Woche mit einem Montag beginnt, ist Montag der Tag mit der Ziffer "1", "5" ist beispielsweise der Freitag, "6" der Samstag, aber "0" ist dann wiederum der Sonntag der Woche. Wir können mit den beiden Zeilen "var Heute = New Date" und "Heute.getDate" natürlich den aktuellen Wochentag bestimmen und können sagen: Wenn wir hier den Tag "6" oder den Tag "0" haben, dann haben wir Wochenende, und wir können entsprechend in unserem Programm darauf reagieren. Das können wir natürlich auch mit den Uhrzeiten machen. Wir können uns die Stunden holen und können sagen: Wenn das Ganze zwischen 8 und 18 Uhr ist, dann möchten wir anders handeln, als wenn das Ganze zu nachtschlafender Zeit passiert. Wir können mit diesem Date-Objekt nicht nur lesen, also nicht nur Informationen herausholen, sondern wir können auch in dieses Objekt hineinschreiben. Ich fange wieder damit an, indem ich es erst einmal instanziiere, indem ich aus einer Klasse ein Objekt mache. Dieses Objekt speichere ich in der Variablen "Heute". Wenn ich aber sagen möchte: Heute ist ein bestimmter Monat, in dem Fall der Monat Juni, das ist der 6. Monat, JavaScript hatte ja die Nummer "5" -, dann sage ich "Heute.setMonth(5)". Damit habe ich in meinem Date-Objekt auch eine Information verändert. Das geht natürlich auch mit dem entsprechenden Jahr: "setFullYear", also da, wo wir vorhin "get" hatten, schreiben wir ein "set". Wir tauschen nur diesen einen Buchstaben aus, und schon können wir Informationen reinschreiben. "setDay(0)" das macht einen Wochentag, Sonntag aus, weil wir ja bei "0" anfangen, und so geht es dann der Reihe nach weiter. Das ist dieses vorgefertigte Date-Objekt. Wir können dann auf diese Art und Weise auch mit dem Date-Objekt rechnen. Wir können sagen: Heute haben wir den 27. eines Monats. Welches Datum ist denn heute in 10 Tagen? Da können wir nicht einfach 27+10 rechnen. 37, so viele Tage hat kein Monat und vor allem: Jeder Monat hat unterschiedlich viele Tage. Das ist manchmal auch vom Jahr abhängig. Wenn Sie sich Schaltjahre anschauen, da ist dieses Date-Objekt eine schöne Möglichkeit, um dann auch mit Datumsangaben zu rechnen. Schauen wir uns einmal ein anderes Objekt von JavaScript an: Das Math-Objekt. Damit können wir mathematische Funktionen und mathematische Arbeitsschritte ausführen. Wir haben als Beispiel eine Variable, die nennen wir "x". Der geben wir den Wert "200.6" (200,6). Wichtig ist: Wir müssen bei 200.6 anstelle eines Kommas einen Punkt setzen, weil im Amerikanischen da, wo wir im Deutschen ein Komma schreiben, eben ein Punkt hingehört. Jetzt möchten wir z.B. diese Zahl hier runden. Das machen wir folgendermaßen: Wir schreiben "var y = Math.round", und dann übergeben wir die Zahl, die wir eigentlich runden möchten. In dem Fall käme dann eine "201" zurück. "Math.round", das ist der Schlüsselbegriff. Wir schreiben in runde Klammern das hinein, was wir runden möchten. Es gibt andere Möglichkeiten. Wir haben hier z.B. 3 Variablen: "A", die hat "200", "B" hat den Wert "10000" und "C" hat den Wert "4". Jetzt möchte ich herausfinden: Was von diesen dreien ist denn die größte Zahl? Das kann ich in JavaScript und in vielen anderen Programmiersprachen auch in nur einer Zeile Code machen: mit "Math.max". Das heißt, ich übergebe an diese Math.max-Methode 3 Variablen, alle die ich habe. Zurück würde mir in dem Fall "B" geliefert, eben der größte Wert in dieser Reihe. Da kann ich nicht nur mit 3 Variablen arbeiten, sondern mit beliebig vielen; so viele, wie ich vorliegen habe. Es gibt nicht nur "Math.max". Es gibt auch "Math.min", das liefert mir dann genau das Gegenteil zurück. Dann gibt es eine ganze Reihe von unterschiedlichen Objekten, in jeder Sprache auch unterschiedliche. Die meisten werden aber so etwas wie "PI" haben, wie ".random", also eine Zufallszahl uns zurückliefern -, "Square root", also die Quadratwurzel einer Zahl oder auch den Logarithmus einer Zahl ".log". Das ist abhängig von Ihrer Programmiersprache. Da sollten Sie in der entsprechenden Dokumentation alle weiteren Informationen dafür finden. Was ich hier nur darstellen möchte, ist, dass wir mit Objekten sehr viel arbeiten können, und dass vieles auch schon in den meisten Programmiersprachen vorgefertigt ist. Es gibt in JavaScript schon einige Klassen und Objekte, die wir finden. Das ist z.B. das "Array". Dieses "Array" hat verschiedene Eigenschaften, wie z.B. ".length", verschiedene Methoden, wir können die Reihenfolge ändern, wir können sortieren usw. Wir haben eine Klasse "RegExp", das ist die Abkürzung für "Regular Expression" für einen regulären Ausdruck. Das ist dafür da, dass wir innerhalb einer Zeichenkette nach bestimmten Mustern suchen können. Wir können entscheiden: Handelt es sich bei einer Zeichenkette um eine EMail-Adresse oder um eine Website-Adresse z.B.? Wir haben eine Klasse, die heißt "Date". Da können wir mit Datumsangaben rechnen. Wir können zu einem Datum ein paar Tage hinzurechnen, ein paar Tage abziehen, und wir können uns dann den neuen Monat oder den neuen Tag im Monat anzeigen lassen. Wir haben ein Math-Objekt, D.h., wir können mathematische Operationen arithmetische Operationen damit durchführen. Wir können Begriffe runden. Wir können einen Kosinus oder einen Sinus berechnen und dergleichen mehr. In den meisten Sprachen gibt es eine Reihe von vorgefertigten Klassen, die wir zu Objekten instanziieren können. Diese Objekte haben dann eigene Eigenschaften und eigene Methoden, mit denen wir das Objekt, bzw. die Informationen in diesem Objekt auch manipulieren können. Diese vorgefertigten Klassen und Objekte in JavaScript können wir ganz normal aufrufen wie eine eigene Klasse, die wir selbst definiert haben, also z.B. "var today = New Date". Dieses "Date", das ist das eigentliche Objekt, das wir aufrufen und wie bei jedem anderen Objekt: Wenn wir es instanziieren, schreiben wir ein "New" davor. Wir haben auch schon Arrays kennengelernt. Die können wir entweder aufrufen, indem wir sagen: "myArray = ", und dann in eckigen Klammern schreiben wir die einzelnen Werte, die wir in dieses Array hineingeben wollen. Wir können aber genauso mit dem "New Operator" arbeiten und schreiben: "New Array(1,2,3)", das ist genau das Gleiche wie gerade eben, nur das wir gerade eben diese Kurzvariante gesehen haben. Wichtig auch hier: Wir fangen dieses Array mit einem großen "A" an. Reguläre Ausdrücke kennen wir auch so, dass wir sie erzeugen, indem wir anstatt Anführungszeichen einen Schrägstrich schreiben. Wir können mit dem "New-Parameter" arbeiten und schreiben: "New RegExp(hello)". Wir hätten in dem Fall einen regulären Ausdruck mit dem "Hello" erzeugt. Alle 3 haben es gemeinsam, dass sie mit diesem "New"-Schlüsselwort anfangen, und dann hinten dran die Klasse schreiben, die wir instanziieren wollen. Es hat sich eingebürgert, dass Klassen mit einem großen Buchstaben anfangen. Es ist also guter Stil, wenn wir das auch für Klassen übernehmen, die wir selber erzeugen, nämlich dass wir sie mit einem Großbuchstaben beginnen lassen.

Grundlagen der Programmierung: Basiswissen

Steigen Sie ein in die Welt der Computerprogrammierung und verschaffen Sie sich das Grundwissen, um schon bald eigene Lösungen und Anwendungen zu schreiben.

5 Std. 38 min (64 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!