Visual C# 2011 Grundkurs

Konstruktoren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wenn man Feldern bereits beim Erstellen eines Objektes bestimmte Werte zuweisen möchte, nutzt man Konstruktoren.
04:51

Transkript

Wir schauen uns einmal an, was man tun muss, wenn man den Feldern einer Klasse schon bei ihrer Erzeugung bestimmte Werte zuweisen möchte. Das tut man mit sogenannten Konstruktoren. Dazu habe ich hier ein bisschen Quellcode vorbereitet. Wir haben eine Klasse "Person". Diese Klasse ist "public", was bedeutet, dass sie nach außen hin sichtbar ist, also außerhalb der Projektmappe. In der Klasse "Person" haben wir fünf Felder definiert: "Nachname" und "Vorname" vom Typ "String", "Alter" und "Energie" vom Typ "Inf", und "Hat Hunger" vom Typ "Pool". Diese ganzen Felder sind "public", also außerhalb der Klasse sichtbar. Bei der Erzeugung der Main-Methode legen wir uns zunächst ein Personen-Objekt an. Dieses Personen-Objekt heißt "Ich". Und dann greife ich mit dem Punkt-Operator auf die Felder zu und weise denen die beiden Strings "David" für "Vorname" und "Thielke" für "Nachname" zu. Wenn wir so ein Objekt erzeugen, rufen wir damit einen Konstruktor auf. Der Konstruktor ist ein Sprach-Konstrukt innerhalb einer Klasse, das immer bei der Erzeugung von Objekten aufgerufen wird – und Parameter haben oder nicht haben kann. An dieser Stelle rufen wir den sogenannten "Standard-Konstruktor" auf. Der "Standard-Konstruktor" hat keinerlei Argumente. Wenn wir uns unsere Klasse "Person" ansehen, finden wir dort keinen "Standard-Konstruktor". Wir haben nur unsere Felder. Das kommt daher, dass der "Standard-Konstruktor" immer automatisch vom Compiler generiert wird. Wenn wir den explizit implementieren wollten, müssten wir zuerst einen Zugriffs-Modifizierer -"Public" - eingeben, dann den Namen der Klasse und anschließend eine leere Parameter-Liste. Das wäre der sogenannte "Standard-Konstruktor". Der wird immer dann aufgerufen, wenn wir auf diese Art ein neues Objekt erzeugen. In dem Standard-Konstruktor kann man hingehen und z.B. sagen, dass das Alter bei der Erzeugung eines solchen Objekts den Wert Null haben soll und eine Energie von z.B. 1000. Das könnte ich in diesem Kontruktor machen. Schauen wir uns diesen Ablauf im schrittweisen Programmdurchlauf an: Ich setze einen Breakpoint und führe das Programm aus. An dieser Zeile hat das Programm angehalten und ich kann mit F11 in den Standard-Konstruktor springen. Sie sehen, der wird aufgerufen. Und hier belegen wir jetzt sowohl das Alter als auch die Energie vor und verlassen den Konstruktor wieder. Nachdem wir den Konstruktor verlassen haben, können wir mit Hilfe der Maus das Objekt als Ganzes, und mit dem Plus die einzelnen Werte der Felder anschauen. Man sieht, dass das Alter mit Null vorbelegt ist und die Energie mit 1000, wie wir es im Konstruktor festgelegt haben. Das ist der Standard-Konstruktor. Man könnte aber zusätzlich noch weitere Konstruktoren definieren, die Parameter bekommen. Da jede Person bei Ihrer Erzeugung einen Vor- und Nachnamen hat, würde es in unserem Beispiel Sinn machen, dafür einen Konstruktor anzulegen. Wenn wir das machen, beginnen wir wieder mit dem Zugriff-Modifizierer "Public", dann dem Namen der Klasse und anschließend keiner leeren, sondern einer richtigen Parameter-Liste. Wir beginnen dort mit dem Vor- und dem Nachnamen, schließen die Parameter-Liste damit ab und können jetzt Quelltext einfügen, der bei Start der Klasse ausgeführt werden soll. Normalerweise weist man dort Variablen zu. Ich nehme den Nachnamen und weise dem den Parameter "Nachname" zu. Dann nehme ich den Vornamen und weise diesem den Parameter "Vorname" zu. Das ist ein ähnliches Prinzip wie bei der Methoden-Überladung: Ich kann ein Objekt auf zwei Arten erstellen: Zum einen mit einem solchen Konstruktor und – wenn ich noch ein anderes Personen-Objekt anlegen würde – kann ich das mit einem solchen parametrisierten Konstruktor erledigen, wie wir ihn gerade angelegt haben. Wenn ich die öffnende Klammer schreibe, sieht man vorn schon, dass es eine von zwei möglichen Überladungen für diesen Konstruktor gibt: Den einen mit String "Vorname/Nachname" und als zweites den Standard-Konstruktor. Wir nehmen den mit Vor- und Nachnamen, erzeugen uns den Golo Roden, führen das Ganze aus und setzen einen Breakpoint. Jetzt ist der Debugger-Cursor in dieser Zeile. Wir springen mit F11 in den Konstruktor hinein und man sieht: Er wählt anhand der Parameter-Liste automatisch den richtigen Konstruktor. Wenn wir uns jetzt die Werte ansehen, ist der Vorname "Golo", der Nachname "Roden". Dann werden diese Parameter in die einzelnen Felder übernommen. Und wenn ich jetzt aus dem Konstruktor heraus springe, sieht man, dass das Objekt mit diesen Werten vorbelegt ist. Wir haben uns angeschaut, was man tun muss, wenn man Feldern in Objekten bereits bei der Initialisierung Werte zuweisen will. Dazu haben wir die Konstruktoren kennengelernt. Konstruktoren kann es mehrere geben: Zunächst der Standard-Konstruktor, der Konstruktor ohne Parameter-Liste – und es kann parametrisierte Konstruktoren geben, die eben Parameter beinhalten. Diese beiden Konstruktoren können parallel zueinander existieren. Dann spricht man von der sogenannten Konstruktoren-Überladung, weil man mehrere Konstruktoren mit unterschiedlichen Parameter-Listen hat.

Visual C# 2011 Grundkurs

Steigen Sie in die C#-Programmierung ein und lernen Sie sowohl die Grundlagen der Sprache C# als auch die Entwicklungsumgebung Visual Studio 2010 und .NET-Framework kennen.

7 Std. 28 min (81 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Visual Studio Visual Studio 2010
Exklusiv für Abo-Kunden
Erscheinungsdatum:27.06.2011

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!