Visual C# 2011 Grundkurs

Methoden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mit Methoden können Verhalten in eine Klasse definiert werden. Wir schauen uns hier an, welche Arten von Methoden es gibt und wie man sie in C# implementiert.
08:36

Transkript

Wir schauen uns jetzt mal an, wie man innerhalb von einem Objekt mithilfe von Methoden, Daten verändern kann, um damit mehr oder weniger Verhalten von Klassen implementieren kann. Wenn ich innerhalb von meiner Klasse verschiedene Verhalten habe, wie z.B., dass eine Person läuft, dass diese Person isst oder dass sie redet; dann kann ich das mit solchen Methoden machen. Methoden sind, im Gegensatz zu Feldern, keine Daten sondern Verhalten von Klassen. Und dieses Verhalten oder diese Methoden können Parameter haben oder nicht. Wenn man sich z.B. unten die Person anschaut, wie das Verhalten "läuft", hat z.B. einen Parameter, das ist die Strecke, die er läuft. Wenn man sich das Verhalten "isst" anguckt, hat es auch einen Parameter, das ist z.B., was es zu sich genommen hat, oder wie viel Energie es zu sich genommen hat. Und bei dem Verhalten "redet", klar, da gibt es auch einen Parameter, den Satz, den diese Person sagt. Aber so eine Methode muss nicht unbedingt so einen Parameter haben. Dann kann so eine Methode einen Rückgabewert haben oder nicht. Wenn diese Methode irgendetwas durchführt, z.B. wenn eine Person ein Verhalten hätte, was z.B. heißt "wiege" - also um das Gewicht zu bestimmen - dann wäre der Rückgabewert dieser Methode eben halt das Gewicht. Solche Methoden, wie Sie sie gesehen haben, also z.B. "laufe", "esse" und "rede", notieren wir jetzt wieder in unserer Klasse. Die Klasse war dieses rechteckige Gebilde da auf der rechten Seite. Zunächst haben wir Felder definiert, das waren die Elemente mit diesem blauen Icon davor. Die Felder hatten einen Namen und durch einen Doppelpunkt trennt man den Datentyp. Bei unseren Methoden ist das ein bisschen anders: Die haben so ein lilanes Icon und haben zunächst einen Namen und dann die Parameter-Liste. Parameter-Liste hat immer einmal den Namen des Parameters und den Datentyp des Parameters. Beispiel "essen" z.B., wenn ich esse, nehme ich Energie zu mir, Energie ist der Datentyp "int" und eben halt der Name des Parameters "Energie". Durch einen Doppelpunkt getrennt sieht man dann ob diese Methode einen Rückgabewert hat oder nicht. In diesem Beispiel "essen", "laufen" und "reden" hat keinen Rückgabewert. In C# kann ich solche Methoden nur in Klassen definieren. Wenn ich so eine Methode definieren will, muss ich zunächst wieder mit einem Zugriffsmodifizierer anfangen. Ich kann also sagen, ist diese Methode außerhalb meiner Klasse sichtbar oder auch nicht. Wenn sie sichtbar sein soll, dann "public"; wenn nicht, "private". Und danach muss ich sagen, hat diese Methode einen Rückgabewert oder nicht. Wenn sie einen hat, steht dort "int string" oder was auch immer; aber wenn sie eben keinen hat, steht dort, wie in diesem Beispiel hier, "void". Dann den Namen der Methode; Namen von Methoden sollten immer mit einem Großbuchstaben anfangen und Verb sein, also in diesem Beispiel "Laufen". Und danach kommt die Parameter-Liste. Wenn diese Parameter-Liste leer ist, geht einfach nur eine runde Klammer auf und eine runde Klammer wieder zu. In diesem Beispiel haben wir einen Parameter und dort muss ich eben halt sagen, wie der Parameter heißt und was das für ein Datentyp ist. Wenn es mehrere Parameter gäbe, wären die durch ein Komma voneinander getrennt. Unterhalb von dieser Definition der Methode, gibt es dann diesen Block; dieser Block, der ausgeführt wird, wenn diese Methode oder dieses Verhalten später aufgerufen wird. Das war jetzt alles ein bisschen sehr abstrakt. Wir schauen uns das Ganze mal im Visual Studio an. Dazu habe ich hier im Visual Studio schon mal ein bisschen einen Code vorbereitet: Zum Einen haben wir eine Klasse, das ist die Klasse "Person", in dieser Klasse "Person" ist ein Konstruktor definiert. Dieser Konstruktor wird aufgerufen, wenn das Objekt erzeugt wird. Der Konstruktor hat 2 Parameter: einmal einen Vornamen, einen Nachnamen, beide vom Datentyp "string" und diese beiden Vor- und Nachnamen werden hier in die jeweiligen Felder geschrieben. Danach setzen wir noch die Energie auf 100. Zusätzlich haben wir 5 Felder: zunächst Vorname und Nachname vom Datentyp "string", alte Energie vom Datentyp "int" und eine Variable "hat Hunger" vom Typ "boolean". In unserer Main-Methode legen wir jetzt einfach nur ein Objekt draußen an, und dieses Objekt draußen wird mit dem parametisierten Konstruktor aufgerufen, heißt ich vergebe hier David als Vornamen und Thielke als Nachnamen. Wir wollen mal so eine Methode hier implementieren. Und wir beginnen mal mit der Methode "Laufen". Zunächst fangen wir mit dem Zugriffsmodifizierer an, wir sagen, diese Methode soll später von außen genutzt werden, also ist sie "public". Dann sagen wir, sie hat keinen Rückgabewert und heißt "Laufe". Laufe hat jetzt einen Parameter, und zwar ist das die Strecke, die gelaufen wird. Die ist vom Datentyp "int" und ist oben in der Parameter-Liste. Jetzt wenn so eine Person läuft, dann verringert sich natürlich irgendwann ihre Energie. Das heißt, wir sagen jetzt einfach mal, die Anzahl der gelaufenen Strecke ist gleich der Energie, die verbraucht wurde. Heißt also, wir gehen in unsere Variable "Energie" und ziehen davon die Strecke ab, die gelaufen wurde. Das heißt, je mehr wir jetzt laufen, umso mehr Energie verbraucht der Mensch, und die Energie geht immer weiter runter. Wenn wir das Ganze jetzt mal an dieser Stelle probieren, sagen wir mal zunächst geben wir mit "Console WriteLine" die Energie der Person "ich" aus und dann ist dann "ich.energie". Ich rufe diese Methode einmal auf, und man sieht jetzt hier in der Liste, die uns IntelliSense anzeigt, wird uns die Methode "Laufe" auch angeboten. Methoden, wie gesagt, hier vorne durch dieses lilane Symbol gekennzeichnet. Und jetzt laufen wir mal so eine Strecke und ich sage einfach mal, wir laufen mal 50 km. Und danach geben wir mal "Console WriteLine" aus, wie viel Energie wir noch haben, das machen wir mit "ich.energie". Dann geben wir noch mit "Console ReadKey" an, dass das Programm an dieser Stelle halten soll. Und dann setzen wir einen Breakpoint in diese Zeile, um uns den Methodenaufruf kurz anzugucken, starten das Ganze Programm und springen mit F11 in diese Methode rein. Und wenn ich jetzt diese Methode aufrufe, dann wird hier auf dem konkreten Objekt aufgerufen, das heißt, hier drin habe ich jetzt die Werte "David" und "Thielke" von diesem Objekt, auf dem ich diese Methode aufgerufen habe. Wir gehen jetzt hier mal weiter, und man sieht jetzt hier, wir sind eine Strecke von 50 km gelaufen. Diese Strecke ziehen wir von unserer Energie ab, verlassen hier die Methode und wenn wir das dann hier weiter ausführen, dann steht in unserer Konsole zunächst 100, das war die alte Energie, und jetzt haben wir noch eine Energie von 50. Wir haben also mit unserer Methode die Daten verändert. Jetzt können wir z.B. in der Methode noch implementieren, dass zuvor überprüft wird, ob überhaupt genug Energie vorhanden ist, um diese Strecke zu laufen. Das machen wir mit einer if-Abfrage, ich sage "if" und sage "Strecke" muss größer sein als "Energie", und wenn diese Strecke größer ist als die Energie, dann geben wir hier auf der Konsole einfach aus, dass die Person zu hungrig ist dafür. Also Person kann nicht laufen, hat Hunger. Zusätzlich können wir an der Stelle hingehen, wir haben also eine Variable "hat Hunger", und dann sagen wir "hat Hunger" ist gleich "true". Und dann geht das Ganze immer so weiter, also ich könnte hier noch diverse andere Überprüfungen machen und somit quasi den Zugriff auf meine Daten an der Stelle regeln, um mit diesem Verhalten von außen meine Daten im Hintergrund manipulieren. Wir gucken uns einmal das Beispiel an, wenn wir jetzt an der Stelle hier unten - ich kopiere das einfach mal mit Strg+C, Strg+V - und wir laufen jetzt hier mal noch 51 km, weil da reicht die Energie nicht für, das wissen wir mittlerweile. Und wenn ich das Ganze dann ausführe, dann steht hier: Person kann nicht laufen, hat Hunger. Aber unsere Energie wurde trotzdem um 1 verringert, obwohl wir gar nicht gelaufen sind. Das ist eine Eigenart von Methoden, z.B. an dieser Stelle möchten wir, dass die Methode gar nicht mehr weiter ausgeführt wird. Deswegen sagen wir an dieser Stelle mit Return, dass wir diese Methode nicht weiter ausführen möchten. Return kennen wir vielleicht bereits, Return benutzt man auch, um in Methoden, die einen Rückgabewert haben, diesen oder einen gewissen Wert oder eine Variable zurückzugeben. Wenn wir dann nochmal unser Programm an dieser Stelle ausführen, dann sieht man das, die Person kann nicht länger laufen, denn sie hat Hunger. Dort könnten wir jetzt hingehen und könnten eine Methode "Essen" implementieren, wo wir dann eine gewisse Menge Energie essen können und ab da könnten wir dann wieder laufen, aber das machen wir hier jetzt nicht mehr. Wir haben in diesem Video gesehen, wie wir unsere Daten mithilfe von Verhalten und so genannten Methoden verändern können. Es gibt mehrere Arten von Methoden, es gibt zunächst die Methoden mit Parameter und ohne Parameter, wir haben hier eine mit Parametern implementiert. Wenn man eine hätte implementieren wollen ohne Parameter, hätte man hier diese Liste einfach leer gelassen. Dann gibt es Methoden mit Rückgabewert und ohne Rückgabewert. Ohne Rückgabewert setzt man dort ein, wo in diesem Objekt intern irgendwas gemacht wird, also irgendwelche Daten geändert werden, aber an der Aufrufstelle - also hier in diesem Bereich - ich diese veränderten Daten gar nicht brauche. So wie in diesem Fall hier, wir sind einfach gelaufen, haben intern unsere Daten geändert und brauchten keinen aktualisierten Wert, oder hatten keinen berechneten Wert, den wir an der Stelle weiter nutzen wollen. Wenn man so etwas hat, muss man hier halt den Datentyp angeben und dann irgendwann hier in der Methode an der Stelle, wo ich diesen Wert zurückgeben möchte, schreiben "return" und dann den Wert, der entweder konstant ist oder z.B. in einer Variablen ist.

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!