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

Visual Basic Grundkurs

Konstruktoren

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Dieser Film vermittelt wichtige Details zu Konstruktoren (insbesondere parametrisierten) für das Erzeugen von Objekten.
06:24

Transkript

In diesem Video wollen uns ansehen, wie Sie eine etwas eine komplexere Klasse umsetzen können, mit verschiedenen Eigenschaften und Methoden Und vor allen Dingen, wie Sie einen eigenständigen Konstruktor erzeugen können. Das ist in vielen Fälllen wirklich notwendig. Als Basis möchte ich mir diese Klasse hier in vb.net programmieren, die die Eigenschaften Farbe, Sitzplätze und Geschwindigkeit hat und die Methoden "Starten" "Beschleunigen" "Bremsen" und "Lenken" Und das ist jetzt diese Klasse, wir werden diese Klasse nicht hundertprozentig nach Vorlage des UML-Models bauen. Es gibt so zwei, drei Besonderheiten, die möchte ich Ihnen im Quellcode zeigen, und die kann man im UML nicht so einfach abbilden. Zumindest nicht mit dem Programm, mit dem ich dieses Diagram erzeugt hatte. Zuerst den Import auf Systemkonsole, deswegen kann ich dann in Kurzform "writeline" oder so etwas benutzen. Ansonsten sehen Sie die drei Eigenschaften, die wir hier haben wollen. Erst mal hier über lokale Variablen deklariert, die aber über "private" wie gesagt von aussen nicht zugänglich sind. Das ist die Farbe als String, Anzahl der Sitzplätze als integer. und die Geschwindigkeit als integer. Für diese drei privaten Variablen gibt es "properties". Zuerst ein mal die property "Geschwindigkeit". Ganz klassisch, ich kann Geschwindigkeit auslesen über "get" und ich kann die Geschwindigkeit über "set" setzen und das ist eine typische "property"-Konstruktion von vb.net. Die Geschwindigkeit wird sich ändern beim Fahrzeug. Die Farbe sollte sich normalerweise nicht ändern. Ausser beim einem Unfall, oder einer Beschädigung. Von daher hab ich diese property hier als "Readonly Property" gemacht. Das heisst, die Farbe kann zwar ausgelesen werden. Aber Sie kann nicht mehr verändert werden. Nicht mehr verändert werden, nachdem ein Objekt erzeugt wurde. Darauf kommen wir gleich zu sprechen. Genauso auch die Zahl der Sitzplätze sollte sich normalerweise nicht ändern, wobei es gibt natürlich Fahrzeuge, da kann man einen Sitz einbauen, ausbauen, solche Sachen. Das soll hier nicht berücksichtigt werden. Dementsprechend habe ich hier auch eine "Readonly Property". Die nächsten Zeilen sind jetzt besonders interessant, denn das, was wir hier sehen Von "Public Sub New" bis "End Sub", Das ist die Definition eines Konstruktors. Jede Klasse stellt automatisch einen Konstruktor zur Verfügung. Egal, ob Sie etwas hinschreiben so wie "New here", oder nicht. Aber das ist dann ein sogenannter parameterloser Konstruktor, der einfach ein Objekt erzeugt ohne irgendwelche Vorgaben, also ohne bestimmte Eigenschaften zu initialisieren, und die Möglichkeit zu geben, sie frei zu initialisieren. Wenn Sie ein Auto erzeugen wollen, ein Fahrzeug, dann wollen Sie aber die Farbe beim Erzeugen festlegen, und auch die Zahl der Sitze, denn Sie können später nicht mehr ändern. Wir haben ja bewusst hier "Readonly Properties". Und d.h., ich habe hier als Übergabewert einen Parameter für die Farbe, und einen für Sitze und beim Erzeugen des Objektes wird das Objekt mit diesen Übergabewerten initialisiert. Dann habe ich noch einige Methoden hier, die eine gewisse Funktionalität beinhalten. Als das Starten das Motors, da macht es so ein Geräusch. Wenn ich beschleunige, dann wird mit einer gewissen Logik hier die Geschwindigkeit erhöht, das ist eine relativ einfache Geschichte. Wenn dieser Übergabewert grösser als Null ist, dann wird die Geschwindigkeit um diesen Faktor erhöht. Das Überprüfen "0" verhindert, dass ich mit der Methode "Beschleunigen " auch "Bremsen" kann. Das ist eine rein formale Geschichte. Und danach gebe ich die aktuelle Geschwindigkeit aus. Etwas aufwendiger ist das Bremsen, denn ich kann im Prinzip ein Fahrzeug bis zu einer beliebigen Geschwindigkeit beschleunigen. Ich kann aber ein Fahrzeug definitiv nicht weiter als bis zur Geschwindigkeit "0 "abbremsen. Sonst fahre ich rückwärts, und das ist kein Bremsen mehr. Deswegen hab ich hier mit einem "if else if" Konstrukt abgefangen, dass die Geschwindigkeit negativ wird. Das Lenken ist schlicht und einfach so, dass man mit einem "true" nach rechts fährt, und mit einem "false" nach links. Eine ganz vereinfachte Geschichte, um eine Lenkbewegung zu simulieren. Wichtig, wie gesagt, ist der Konstruktor und den möchte ich jetzt mal anwenden. Ich erzeuge hier in diesen Modul mit der "Main"-Prozedur, ein neues Objekt vom Typ Fahrzeug. Dim f (für Fahrzeug) As Fahrzeuge Und ich gebe hier als Parameter die Farbe für das Fahrzeug an. Und die Anzahl der Sitze. Nun fehlt noch eine Kleinigkeit. Ich möchte das als ein neues Objekt haben. Und deswegen kommt noch "New" davor. Jetzt kann ich "F." die Farbe beispielsweise abfragen und das zum Beispiel ausgeben. in der vollen Schreibweise. Und Sie werden sehen, dass da "Rot" auftaucht, Ich kann allerdings die Farbe nicht mehr verändern, denn das ist eine "Readonly"-Eigenschaft, so wie gewünscht. Ich kann allerdings die Geschwindigkeit ändern. Das heisst, wenn ich den Motor jetzt mal starte. Das ist einfach rein formal, das müssen Sie gar nicht machen. Die Logik ist ja nicht so implementiert, dass die Aufrufe der Methoden in irgendeiner Reihenfolge stattfinden aber rein formal. Und ich sage "f.Geschwindigkeit" Dann kann ich die Geschwindigkeit setzen, oder aber ich kann sie auch abfragen. Vor allen Dingen kann ich auch beschleunigen. Sagen wir mal um dem Faktor 15km Und danach frage ich die Geschwindigkeit wieder ab. Es wäre nun durchaus sinnvoll auch die Geschwindigkeit nicht frei zugänglich zu machen, das heißt dass man immer über beschleunigen oder bremsen die Geschwindigkeit ändern muss. Aber das ist eine Designfrage meiner Klasse "Fahrzeug" Und das möchte ich jetzt hier nicht auf die Spitze treiben. Sie sollen nur die Unterschiede sehen zwischen einer "Readonly property" und eben einer Property, die für das Lesen und Schreiben freigegeben ist. Wichtig ist in dem Zusammenhang der Konstruktor den ich hier redefiniert habe, um ein Objekt beim Erzeugen mit gewissen Werten zu initialisieren. Und genau das mache ich hier an dieser Stelle.

Visual Basic Grundkurs

Entdecken Sie, wie eine der bekanntesten und verbreitetsten Programmiersprachen unter .NET funktioniert.

3 Std. 43 min (51 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:03.11.2014

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!