Visual C# 2012 Grundkurs

Fields

Testen Sie unsere 2007 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Fields sind Variablendeklarationen, welche Variablen der Klasse zuordnen. Sie sind die einfachsten Mitglieder einer Klasse.

Transkript

In dem Kapitel möchte ich die wichtigsten Elemente der Sprache C# in der Praxis vorführen. Ich beschränke mich dabei auf die Elemente, die ich jetzt für die folgenden Diskussionen am allernotwendigsten brauchen. C# ist ja eine objektorientierte Sprache, und ich möchte, bevor ich jetzt ganz tief in die Sprache C# eintauche, dass ich einmal so Konzepte der objektorientierten Programmierung erkläre. Diese Konzepte lassen sich besser erklären, wenn wir gewisse Grundlagen der Sprache haben, so dass man anhand von Programmbeispielen diese Konzepte auch erläutern kann. Da will ich in diesem Kapitel hin. Und in diesem ersten Abschnitt möchte ich mit "Members" der Klassen beschäftigen und da die "Fields" herausgreifen. Ich starte dazu ein neues Projekt mit "Console application", die nenne ich jetzt mal "Members". Ich habe also jetzt wieder eine Klasse, die in einem "Name space" drin liegt und in der Klasse schon eine Methode. Und im Prinzip ist es eigentlich so: Diese Methode ist schon das erste "Member" dieser Klasse, das erste Mitglied. Alles, was zwischen diesen geschweiften Klammern einer solchen Klassendefinition steht, das sind die Mitglieder. Die einfachsten Mitglieder sind jetzt die "Fields". Das sind letztendlich Variablen-Deklarationen und zwar derart, dass die Variable der Klasse zugeordnet wird. Machen wir doch einfach einmal eine Klasse "Test class". Diese Testklasse hat jetzt ein "Field", "Integer intvalue". Und die könnte jetzt auch noch einen "String name" haben, das sind jetzt also Felder und diese Dinge sind von außen nicht sichtbar. Hier in diesem "main", da kann ich jetzt so ein Objekt der Klasse "test class" anlegen: "test class tc=new test class". Das ist die Schreibweise, wie ich ein Objekt einer Klasse neu anlege. Und das mit dem "Klammer auf, Klammer zu", also im Grunde genommen wird da so eine Art unsichtbare Initialisierungsfunktion aufgerufen, die sich "Constructor" nennt. In dem Fall ist es der sogenannte "Default Constructor", das heißt, es ist ein "Constructor", den ich hier gar nicht geschrieben habe, sondern der explizit vorhanden ist. Der initialisiert mir ein Objekt von dieser Klasse "TestClass". Jetzt habe ich also dieses Objekt, und jetzt, wenn ich versuchen wollte diesen "intValue" auszulesen, dann stelle ich fest: Es geht nicht. Man sieht der "IntelliSense" bietet es mir auch schon gar nicht an und sagen wir ich will dem einen Wert zuordnen, wenn ich das Ganze kompiliere, dann bekomme ich einen Fehler. Und dieser Fehler heißt: "IntValue is inaccessible due to its protection level", also es ist unsichtbar, weil es wohl irgendwie geschützt ist. Der Punkt ist der, dass "Fields" per Definition immer privat sind, also Privatangelegenheit der Klasse. Wenn jetzt diese Klasse hier eine Methode hätte "VoidMyMethod", da haben wir jetzt diese Methode hier. Die könnte jetzt z.B. diesem "intValue" irgendeinen Wert zuordnen. Das würde gehen. Weil "intValue" sozusagen "privat" innerhalb der Klasse ist. Wenn ich möchte, dass so ein "Field" extern sichtbar ist, dann könnte ich es z.B. "public" machen. Jetzt sieht man auch hier dieses Rotumringelte ist schon weggegangen. Ich rekompiliere jetzt mal, und siehe da: "Rebuild all succeeded", man könnte also jetzt auf diesen Wert zugreifen. Ich sage es aber gleich: "Never ever do that". Tun Sie das nie. Das sind also jetzt "Access-Modifiers". Damit kann ich den Zugriff auf solche "Fields" regeln. "Fields" können nicht nur in der Weise angewendet werden, dass sie sozusagen der Instanz eines Objekts zugehörig sind, sondern "Fields" können auch statisch sein. Ich könnte z.B. hier ein "Static intValue" daraus machen. Wenn ich jetzt z.B. hier eine statische Methode habe, die kann also diesen intValue benutzen. Wenn diese Methode jetzt diesen "Name" benutzen wollte, es würde nicht gehen, weil die Methode eben statisch ist. Das heißt, statische Elemente, statische "Members" sind immer der Klasse zugehörig, und alle anderen Members, die nicht statisch sind, sind immer einer Instanz zugehörig. Machen wir mal hier das Ding noch einmal "public", um die Sache nochmal klarer zu machen, und gehen wir mal in diesen Kontext rein. Ich habe jetzt hier ein Objekt "TC", und dadurch, dass dieses "intValue" jetzt statisch ist, könnte ich einfach schreiben "TestClass.intValue". Was ich aber nicht machen könnte-- machen wir den "Name" hier jetzt auch gerade einmal "public", damit wir ihn sehen können von draußen, damit man den Unterschied sehen kann zwischen statisch und nicht-statisch. Wenn ich jetzt versuchen würde "TestClass.Name" zu schreiben, das würde einfach nicht gehen. Warum? Weil "Name" erfordert eine Instanz. Wir haben ja hier eine Instanz vorliegen, dieses "TC". Wenn ich das jetzt schreibe, dann bekomme ich über die Instanz diese Variable "Name". Das ist eine Instanz-Variable. Auf die Weise unterscheidet sich das. Hier habe ich also eine statische Variable, die gehört der Klasse. Hier habe ich eine nicht-statische Variable, und die gehört dem Objekt von der Klasse. Jetzt habe ich ja schon gesagt, das ist so eine Regel der objektorientierten Programmierung, die ich gerne vorziehen möchte, bevor ich überhaupt über die objektorientierte Programmierung anfange zu sprechen, aber es gibt eine Regel, und die besagt: Alle Variablen sollen "privat" sein. Aber manchmal möchte ich irgendwelche Werte von einem Objekt erfragen oder irgendwelche Werte in ein Objekt injizieren, und für diesen Zweck gibt es eben andere Elemente als die Felder, als die Manipulation der Felder direkt. In diesem Abschnitt aber haben wir uns auf die Felder erstmal beschränkt. Wir haben festgestellt, dass es Felder mit verschiedener Sichtbarkeit gibt, und es gibt statische und nicht-statische Felder.

Visual C# 2012 Grundkurs

Schreiben Sie eigene Programme in C# und lernen Sie dazu alle Schlüsselwörter und die meisten Konstrukte kennen, um sicher mit dieser Programmierspreche umzugehen.

7 Std. 1 min (44 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!