Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Klassenkonstruktoren | Einführung in die Objektorientierte Programmierung (OOP)
C# Über die Grundlagen Hinaus
course content

Kursinhalt

C# Über die Grundlagen Hinaus

C# Über die Grundlagen Hinaus

1. Zusätzliche Strukturen & Dateiverarbeitung
2. Strukturen & Enumeratoren
3. Einführung in die Objektorientierte Programmierung (OOP)
4. OOP Essentials
5. OOP-Prinzipien

book
Klassenkonstruktoren

Ein Klassenkonstruktor ist dasselbe wie ein Strukturkonstruktor. Es ist eine Methode, die ausgeführt wird, wenn ein Objekt erstellt wird.

Die Syntax zum Erstellen eines Konstruktors ist die folgende:

cs

index

copy
1234567
class className { // ... other class code public className() { // code } }

Zum Beispiel:

cs

index

copy
1234567891011121314151617
using System; class Player { public Player() { Console.WriteLine("A new player is created"); } } public class HelloWorld { public static void Main(string[] args) { Player p1 = new Player(); Player p2 = new Player(); Player p3 = new Player(); } }

Aus der Ausgabe können Sie sehen, dass die Console.WriteLine-Anweisung im Player-Konstruktor jedes Mal ausgeführt wird, wenn ein neues Objekt erstellt wird.

Im Folgenden finden Sie ein Beispielcode aus dem Kapitel Strukturkonstruktoren. Der Begriff static wird in den Kommentaren erklärt, da er hier relevanter ist. Es ist jedoch nicht notwendig, ihn vollständig zu verstehen, da dieses Konzept in späteren Abschnitten ausführlich erklärt wird.

cs

index

copy
1234567891011121314151617181920212223
using System; struct Program { public static int totalPlayers = 0; struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

Um die Player-Struktur in eine Klasse umzuwandeln, müssen wir lediglich den Begriff struct in class ändern:

cs

index

copy
12345678910111213141516171819202122232425262728
using System; class Program { // Unlike normal fields, a 'static' field can hold data even if there's no object. // Static fields have the same value for all objects. // Changing the value of a static field from one object changes it for all objects. // In this case the static field is part of the 'Program' class which represents the program itself // Therefore this field is essentially a global variable public static int totalPlayers = 0; struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

Ähnlich können wir auch Konstruktoren mit einigen Argumenten haben. In der Regel wird diese Methode verwendet, um die Initialisierung von Klassenfeldern zu erleichtern:

cs

index

copy
12345678910111213141516171819202122232425262728
using System; class Point { public double x; public double y; public Point(double x, double y) { // 'this' keyword is also used in classes just like how its used in structs this.x = x; this.y = y; } public void showCoordinates() { Console.WriteLine($"({x}, {y})"); } } class Program { static void Main(string[] args) { Point p1 = new Point(50, 70); Point p2 = new Point(70, 90); p1.showCoordinates(); p2.showCoordinates(); } }

An diesem Punkt haben wir die meisten der Grundkonzepte der Classes behandelt, und ausgehend von der Syntax und dem Verhalten scheinen Classes genau dasselbe wie Structs zu sein, jedoch ist das tatsächlich nicht der Fall. Wie im ersten Kapitel dieses Abschnitts erwähnt, sind Strukturen eine eingeschränkte Version von Klassen, die nur eine grundlegende Funktionalität bieten, während die Merkmale von Klassen viel komplexer und umfassender sind. In diesem Abschnitt haben wir alle Merkmale behandelt, die zwischen Classes und Structs ähnlich sind. In den nächsten beiden Abschnitten werden wir alle Feinheiten der Klassen und der objektorientierten Programmierung lernen.

1. Wann wird eine Konstruktor-Methode aufgerufen?

2. Wie lautet der Name einer Konstruktor-Methode in einer Klasse namens "Animal"?

3. Welches Schlüsselwort wird vor einem Konstruktor-Namen verwendet?

Wann wird eine Konstruktor-Methode aufgerufen?

Wann wird eine Konstruktor-Methode aufgerufen?

Wählen Sie die richtige Antwort aus

Wie lautet der Name einer Konstruktor-Methode in einer Klasse namens "Animal"?

Wie lautet der Name einer Konstruktor-Methode in einer Klasse namens "Animal"?

Wählen Sie die richtige Antwort aus

Welches Schlüsselwort wird vor einem Konstruktor-Namen verwendet?

Welches Schlüsselwort wird vor einem Konstruktor-Namen verwendet?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 9
We're sorry to hear that something went wrong. What happened?
some-alt