Klasse

Aus Das Sopra Wiki
Wechseln zu: Navigation, Suche

In C#-Programmen wird die gesamte Funktionalität über Klassen gesteuert. Das liegt daran, dass in C# und .NET alles von der Klasse Object abstammt.Damit ein C#-Programm lauffähig ist, muss zumindest eine Klasse deklariert werden, in der sich die auszuführenden Anweisungen befinden. Klassen sind sozusagen Baupläne für jedes Objekt, dass in der Anwendung erzeugt werden kann.

Eine Klasse kann aus Feldern, Methoden, Konstruktoren und Destruktoren bestehen, wobei alle diese vier Eigenschaften weggelassen werden können, um eine Klasse zu deklarieren.

Wird ein Objekt einer Klasse erzeugt, man sagt, die Klasse wird instantiiert, so erhält das Objekt alle in der Klasse definierten Methoden und Felder. Es können beliebig viele Objekte aus einer Klasse erzeugt werden. Obwohl ihnen derselbe Bauplan zugrunde liegt, können sie alle vollkommen unabhängig voneinander agieren. (Ausnahmen bilden statische Methoden und Felder, auf die hier noch nicht eingegangen wird.)

Die Definition einer Klasse und die Erzeugung eines Objektes aus dieser Klasse sieht wie folgt aus:

class Cube
{
   // Felderdefinition der Klasse
   int width;
   int height;
   int depth;

   // Konstruktordefinition (Default-Constructor)
   public Cube()
   { 
      this.width = this.height = this.depth = 0;
   }

   // Konstruktordefinition (Überladener Constructor)
   public Cube(int width, int height, int depth)
   {
      this.width = width;
      this.height = height;
      this.depth = depth;
   }

   // Methodendefinition
   public int Volume()
   {
      return (this.width * this.height * this.depth);
   }
}

class Class1
{
   void DoSomething()
   {
      Cube cube1 = new Cube();          // Erzeugung eines Objektes / einer Instanz der Klasse Cube aus dem Standardkonstruktor
      Console.WriteLine("Das Volumen ist: " + cube1.Volume()); // Ausgabe: Das Volumen ist: 0

      Cube cube2 = new Cube(2, 2, 2);   // Erzeugung eines Objektes / einer Instanz der Klasse Cube aus dem überladenen Konstruktor
      Console.WriteLine("Das Volumen ist: " + cube2.Volume()); // Ausgabe: Das Volumen ist: 8
   }
}

Der Konstruktor einer Klasse wird immer dann aufgerufen, wenn eine Instanz der Klasse, also ein Objekt, erzeugt wird. Dabei werden alle Anweisungen, die im Rumpf des Konstruktors definiert wurden, ausgeführt. Er zeichnet sich dadurch aus, dass er nur den Namen der Klasse selbst mit einer öffnenden und schließenden Klammer ((...)), in der sich eventuelle Parameterdefinitionen befinden, beinhaltet. Ist kein Konstruktor definiert, wird zur Erzeugung eines Objektes der Klasse immer der Standardkonstruktor (Klasse()) aufgerufen.