Visual C# 2011 Grundkurs

Klassen, Felder und Objekte

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wenn man in einer objektorientierten Programmiersprache wie C# Daten über ein Objekt strukturiert speichern möchte, kann man dazu eigene Klassen definieren und durch Felder die Daten des Objekts beschreiben.
09:53

Transkript

Wenn wir Daten im Internet speichern wollen, können wir dafür die im Internet bereits eingebauten Datentypen wie in Double, String usw. benutzen. Aber wenn wir komplexere Daten speichern möchten, als wenn wir das in einzelnen Variablen nur speichern, dann haben wir da keine vorgefertigten Datentypen dafür. So etwas löst man durch die Erstellung von eigenen Klassen. Und wie das funktioniert, schauen wir uns in diesem Video mal an. Wenn man Daten zu einer Person speichert, dann hat man verschiedenste Datentypen zu dieser Person. Ich könnte ein Alter speichern, eine Ganzzahl, ob er Hunger hat oder nicht, die Größe, Vorname, Nachname - und das alles sind unterschiedliche Datentypen. Diese Datentypen könnte ich in einer einzelnen Variable speichern, das wäre kein Problem. Aber dann wären diese Daten über diese eine Person eben halt in sehr vielen verschiedenen Variablen gespeichert und nicht strukturiert an einer Stelle, bezogen auf diese Person. Damit man das strukturierter speichern kann, kann man Klassen erzeugen. Klassen sind so eine Art Bauplan für Personen. En Bauplan deshalb, weil diese Klasse erst einmal keine konkrete Person darstellt, sondern einfach nur sagt, wie eine Person aussieht. Wenn man sich mal den Integer-Datentyp anzeigt, Integer-Datentyp sagt im Prinzip nur aus, wie eine ganze Zahl aussieht. Wir haben gesehen, das hat ein gewissen Wertebereich und diese Werte sind konkret, also das sind ganze Zahlen. In unserer Klasse "Person" wollen wir jetzt diese personenbezogenen Daten, wie wir auf der Folie davor gesehen haben, einmal speichern. Und wir einigen uns mal auf eine Notation. Für uns sieht die Klasse "Person" in einer grafischen Repräsentierung so aus wie hier rechts. Wir haben ein rechteckiges Kästchen, oben steht der Name der Person und darunter, dass es eben eine Klasse ist. Und diese Klasse wollen wir jetzt im Laufe der nächsten Folien sukzessive mit neuen Elementen füllen und zeigen, wie man damit solche Daten strukturiert speichern kann. Wenn ich so eine Klasse innerhalb von C# anlege, dann mache ich das mit dem Schlüsselwort "Class". Unten sieht man das mal, ich schreibe "Class" und dann den Namen dieser Klasse, also für uns "Person". Zusätzlich kann ich vor der Klasse einen Zugriffsmodifizierer angeben. Zugriffsmodifizierer heißt, wo diese Klasse sichtbar ist. Wenn wir z.B. "public" wählen, dann könnte man auch aus einer anderen Projektmappe als aus der aktuellen auf diese Klasse zugreifen. Wenn ich z.B. "internal" als Zugriffsmodifizierer nehme, kann ich nur innerhalb meiner Projektmappe auf diese Klasse zugreifen. Wenn ich jetzt in meiner Klasse diese angesprochenen Daten gerne strukturiert speichern möchte, gucke ich mir erst mal an, was ich dort habe. Ich habe z.B. einen Vornamen und einen Nachnamen, das sind alles Strings. Ich habe so etwas wie Alter und Energie, das sind auch beides int. Mit Energie ist hier die Körperenergie gemeint, wenn ich z.B. keine Energie mehr habe, habe ich Hunger. Zusätzlich haben wir noch einen Wert "Hat Hunger" und der ist von Typ Boolean. Diese Dinge, die wir jetzt hier aufgezählt haben, das sind sonst Variablen gewesen und jetzt sind es Felder. Das sind Felder in einer Klasse. Und Felder notieren wird jetzt mal an dieser Stelle so, dass wir in unserer Klasse diese Felder unter dem Menüpunkt Felder auflisten. Zunächst den Feldnamen, dann einen Doppelpunkt und dann den Datentyp, den dieses Feld hat. Vor dem eigentlichen Feld sehen wir so ein kleines, blaues Icon, das bedeutet einfach nur: "Das ist ein Feld." In C# ist das Ganze relativ einfach zu implementieren. Wir schreiben unsere Felder einfach untereinander. Zunächst auch hier wieder ein Zugriffsmodifizierer, d.h., wenn dieser Zugriffsmodifizierer "public" ist, dann ist er außerhalb der Klasse sichtbar, dann kann ich ihn also von außen ansprechen, während wenn ich ihn "private" z.B. mache, dann kann ich ihn nur innerhalb der Klasse benutzen. Danach kommt der Datentyp. Haben wir eben gesehen, das hatten wir aufgelistet. "string in bool", was auch immer, und danach kommt der Name dieses Feldes. Danach schließt es mit einem Semikolon ab. Jetzt habe ich diesen Bauplan für so eine Klasse erstellt - jetzt möchte ich aber mal eine konkrete Person darin speichern. Und wenn ich eine konkrete Person haben möchte, dann muss ich aus der Klasse "Person" ein sogenanntes "Objekt" erstellen. Wenn ich ein solches Objekt erstellen will, brauche ich zunächst einmal eine Referenz, die auf dieses Objekt zeigt. Eine Referenz ist diese Variable, die wir uns da unten definieren. Also, "Ich" ist eine Referenz, die auf ein Objekt zeigen kann vom Typ "Person". Das heißen quasi die ersten beiden Sachen. Danach weise ich dieser Referenz "Ich" ein neues Objekt zu und dieses neue Objekt muss von der Klasse "Person" sein und das erstelle ich mir mit "New Person()". So erstelle ich ein Objekt. Nachdem ich jetzt so ein Objekt erstellt habe, kann ich dann hingehen und auf diese Referenz "Ich" mit dem sogenannten Punktoperator auf die einzelnen Felder zugreifen, die ich in der Klasse definiert habe und dort dann neue Werte reinschreiben. Das ist jetzt hier eine Person, ich könnte natürlich noch mehrere Objekte erstellen und dann noch mehrere Personen darin speichern. Wie man das Ganze jetzt in Visual Studio praktisch umsetzt, schauen wir uns einmal an. Wir legen uns nun als allererstes mal eine neue Klasse an. Ich könnte diese neue Klasse hier unten direkt unter meiner Klasse "Programm" definieren, aber das macht man in C# normalweise nicht. In C# hat man für jede Klasse eine eigene Datei und so eine Klasse legen wir uns jetzt mal an, mit einem Rechtsklick auf unser Projekt hier oben, dann auf "Hinzufügen", dann auf "Klasse". Hier legen wir den Namen der Klasse fest, wir nennen ihn mal "person", oder Person vielmehr - und dann können wir diese Klasse mit Daten füllen. Zunächst schauen wir uns diese Klassendefinition einmal an. Wir beginnen also mit dem Schlüsselwort "Class", d.h. eben dass es sich jetzt hier im Nachfolgenden um eine Klasse handelt. Dann den Namen dieser Klasse, dieser ist bei uns "Person" und dann einen Block, der durch geschweifte Klammern markiert ist. Jetzt kann man zusätzlich an dieser Stelle hier vorne einen sogenannten Zugriffsmodifizierer hinschreiben. Ein Zugriffsmodifizierer heißt, wie diese Klasse nach außen hin sichtbar ist. Stellen Sie sich vor, wir hätten hier vorne in unserer Projektmappe ein zweites Projekt. So, wie die Klasse derzeit definiert ist, wenn ich dort nichts hinschreibe, ist sie "internal". "Internal" heißt, dass diese Klasse nur erstellt werden kann innerhalb von diesem konkreten Projekt hier oben. Wenn ich ein zweites Projekt hätte, könnte ich auf diese Klasse nicht zugreifen. Wenn ich hingegen hier das in "public" ändere, dann könnte ich das auch in einer Projektmappe außerhalb meiner Projektmappe nutzen und könnte dort ein Objekt von dieser Klasse "Person" erstellen. Damit haben wir alles abgehakt. Nun schauen wir uns mal an, wie man ein Feld definiert. Ein Feld beginne ich, genau wie eine Klassendefinition, zunächst mit dem Zugriffsmodifizierer. Der Zugriffsmodifizierer bei einem Feld gibt jedoch an, ob dieses Feld von außerhalb der Klasse, also bei einem konkreten Objekt, zugegriffen werden kann, oder ob es nur innerhalb der Klasse zugegriffen werden kann. Wir entscheiden uns mal für "public". "Public" heißt, dass man dieses Feld später von außen zugreifen kann. "Private" wäre dann das Gegenteil und das hieße, dass ich nur von innen zugreifen kann. Jetzt machen wir mal hier unsere verschiedenen Felder. Wir haben einen Nachnamen, der hat den Typ String. Wir haben einen Vornamen, der den Typ String hat. Wir haben ein Alter, das den Datentyp Int hat und wir haben einmal die Energie, auch mit dem Datentyp Int und wir haben einmal einen Wert, ob er Hunger hat oder nicht und das ist vom Datentyp Boolean. Damit haben wir jetzt diesen Bauplan für unsere Klasse fürs Erste vollständig erstellt. Wir haben also gesagt, wir haben einen Bauplan, dieser Bauplan beschreibt eine Person und eine Person wird durch die Daten charakterisiert: "Vorname", "Nachname", "Alter", "Energie" und "Hunger". Der nächste Schritt ist, dass ich hingehe und von dieser Klasse "Person" mal ein konkretes Objekt erzeuge. So ein konkretes Objekt erstelle ich mal in der main-Methode. So ein Objekt legen wir an, indem wir zunächst mal eine Referenz anlegen. Eine Referenz ist das, was man normalerweise bei primitiven Datentypen normale Variable nennt. Hier ist eben keine Variable mehr, sondern eine Referenz, weil diese Referenz später auf ein Objekt von einer Klasse zeigt. Diese Referenz hat einen Namen, ich nenne sie mal "Ich" und dann weise ich dieser Referenz ein neues Objekt, dieses neue Objekt erstelle ich mit "New" von der Klasse "Person", zu. Je nach einer Eigenschaft müssen am Ende von diesem Erstellen eines neuen Objektes eine öffnende und eine schließende runde Klammer machen, damit rufen wir den sogenannten Constructor auf. Dann kann ich hier auf der Referenz "Ich" mit dem Punktoperator auf die Elemente der Klasse zugreifen. Wir sehen hier durch dieses blaue Symbol markiert, auf das wir uns eben auch in der Präsentation geeinigt haben, die verschiedenen Felder: "Alter", "Energie", "Hat Hunger", "Nachname" und "Vorname". Also genau das, was wir eben definiert haben. Wir nehmen hier nur die Vornamen und weisen denen mal Werte zu, und den Nachnamen auch noch. Das ist jetzt eine Person gewesen und das hätte ich jetzt auch in einem anderen Programm machen können, indem ich z.B. einfach die Variablen "Vorname", "Alter" usw. angelegt hätte. Aber schwieriger und unübersichtlicher wird es in den anderen Programmen wenn ich jetzt z.B. eine zweite Person hätte speichern wollen. Hätte ich solche Variablen gehabt wie "Vorname 1", "Vorname 2", "Alter 1", "Alter 2" usw. Hier können wir jetzt einfach hingehen und legen uns eine weitere Person an, indem wir einfach ein neues Objekt erstellen und eine neue Objektreferenz dazu erstellen, ganz einfach. Dann kann ich hier hingehen und kann sagen, der Nachname hier ist Roden und der Vorname ist natürlich Gore. Damit habe ich jetzt zwei verschiedene Objekte erstellt von dieser Klasse Person und diese strukturieren dann all die Daten, die man eben über eine Person haben kann. Am Ende schauen wir uns noch kurz eins an und zwar, wenn ich hier in die Person gehe und z.B. von meinem Feld "Hat Hunger" den Zugriffsmodifizierer in "private" ändere. Wir haben eben gesehen, als wir den Punktoperator verwendet haben, tauchte "Hat Hunger" außen in der Liste auf, in der IntelliSense-Liste. Und wenn ich jetzt hier die Ich-Referenz verwende mit dem Punktoperator, sehen wir, dass eben das Feld "Hat Hunger" jetzt nicht mehr verfügbar ist, weil es "private" ist, ich kann es also nur innerhalb der Klasse benutzen. Wir haben in diesem Film gesehen, dass ich mit Klassen Daten auf strukturierte Art und Weise speichern kann. Diese Daten werden durch Felder repräsentiert und diese Felder haben jeweils Datentypen und einen Zugriffsmodifizierer. So ein Zugriffsmodifizierer haben die Klassen auch. Wenn eine Klasse einen Public-Zugriffsmodifizierer hat, heißt das, dass sie außerhalb der aktuellen Projektmappe sichtbar ist, beim Internal-Modifizierer ist sie innerhalb dieser Projektmappe sichtbar. Beim Feld heißt "public", dass sie außerhalb der Klasse sichtbar ist und "private", dass sie innerhalb der Klasse sichtbar ist. Wenn ich später aus diesem Bauplan der Klasse ein konkretes Objekt erzeugen möchte, dann muss ich ein sogenanntes Objekt anlegen. Das Objekt anlegen tue ich mit dem Schlüsselwort "New" und dieses Objekt weise ich dann einer Referenz zu. Dann kann ich mithilfe des Punktoperators auf die verschiedenen Elemente der Klasse zugreifen.

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!