Konstruktoren
Teil des Abschnitts Objektorientierte Programmierung der C#-Journey von Coddy — Lektion 7 von 70.
Ein Konstruktor ist eine spezielle Methode, die ausgeführt wird, wenn Sie ein Objekt erstellen. Er initialisiert die Eigenschaften und Felder des Objekts.
Standardkonstruktor ohne Parameter
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
// Standardkonstruktor
public Book()
{
Title = "Unknown";
Author = "Unknown";
}
}Parametrisierter Konstruktor
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
// Konstruktor mit Parametern
public Book(string title, string author)
{
Title = title;
Author = author;
}
}Konstruktor-Überladung - mehrere Konstruktoren
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public int Pages { get; set; }
// Konstruktor mit zwei Parametern
public Book(string title, string author)
{
Title = title;
Author = author;
Pages = 0;
}
// Konstruktor mit drei Parametern
public Book(string title, string author, int pages)
{
Title = title;
Author = author;
Pages = pages;
}
}Konstruktor-Verkettung mit this
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public int Pages { get; set; }
// Hauptkonstruktor
public Book(string title, string author, int pages)
{
Title = title;
Author = author;
Pages = pages;
}
// Ruft den Hauptkonstruktor mit Standardseitenanzahl auf
public Book(string title, string author) : this(title, author, 0)
{
}
}Erstellen von Objekten mit verschiedenen Konstruktoren
Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);Konstruktoren haben denselben Namen wie die Klasse und keinen Rückgabetyp. Sie werden automatisch ausgeführt, wenn Sie das Schlüsselwort new verwenden. Sie können mehrere Konstruktoren mit unterschiedlichen Parametern haben (Überladung).
Aufgabe
MittelErstellen Sie drei Konstruktoren für die Product Klasse unter Verwendung von Konstruktor-Überladung und Verkettung:
- Ein Konstruktor mit 3 Parametern: name, price und stock
- Ein Konstruktor mit 2 Parametern: name und price (stock ist standardmäßig 0)
- Ein Standardkonstruktor ohne Parameter (name = "Unknown", price = 0, stock = 0)
Verwenden Sie Konstruktor-Verkettung mit this, um Code-Duplizierung zu vermeiden.
Spickzettel
Ein Konstruktor ist eine spezielle Methode, die ausgeführt wird, wenn Sie ein Objekt erstellen. Er initialisiert die Eigenschaften des Objekts.
Konstruktoren haben denselben Namen wie die Klasse und keinen Rückgabetyp. Sie werden automatisch ausgeführt, wenn Sie das Schlüsselwort new verwenden.
Standardkonstruktor ohne Parameter:
public class Book
{
public string Title { get; set; }
public Book()
{
Title = "Unknown";
}
}Parametrisierter Konstruktor:
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public Book(string title, string author)
{
Title = title;
Author = author;
}
}Konstruktor-Überladung - mehrere Konstruktoren mit unterschiedlichen Parametern:
public class Book
{
public string Title { get; set; }
public int Pages { get; set; }
public Book(string title)
{
Title = title;
Pages = 0;
}
public Book(string title, int pages)
{
Title = title;
Pages = pages;
}
}Konstruktor-Verkettung mit this, um Code-Duplizierung zu vermeiden:
public class Book
{
public string Title { get; set; }
public int Pages { get; set; }
public Book(string title, int pages)
{
Title = title;
Pages = pages;
}
public Book(string title) : this(title, 0)
{
}
}Erstellen von Objekten mit verschiedenen Konstruktoren:
Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);Probier es selbst
using System;
class Program
{
static void Main()
{
string name = Console.ReadLine();
decimal price = decimal.Parse(Console.ReadLine());
int stock = int.Parse(Console.ReadLine());
Product product1 = new Product(name, price, stock);
Product product2 = new Product();
Product product3 = new Product("Keyboard", 79.99m);
Console.WriteLine($"Product 1: {product1.Name} - ${product1.Price} (Stock: {product1.Stock})");
Console.WriteLine($"Product 2: {product2.Name} - ${product2.Price} (Stock: {product2.Stock})");
Console.WriteLine($"Product 3: {product3.Name} - ${product3.Price} (Stock: {product3.Stock})");
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienNamespaces & DirektivenEinführung in Klassen & ObjekteDas 'this'-SchlüsselwortMethoden und ParameterFelder vs. EigenschaftenKonstruktorenObjekt-InitialisiererZusammenfassung - Einfacher Taschenrechner4Vererbung
Grundlagen der Vererbung (:) SyntaxDas 'base'-SchlüsselwortVirtual & Override SchlüsselwörterVersiegelte KlassenDie 'object'-BasisklasseZusammenfassung – Mitarbeiter-Hierarchie7Fortgeschrittene Funktionen
OperatorüberladungIndexer (this[])ToString() überschreibenErweiterungsmethodenZusammenfassung - Benutzerdefinierte Liste2Eigenschaften & Statische Member
Automatisch implementierte EigenschaftenRead-Only- & Write-Only-EigenschaftenStatische Felder & MethodenStatische KlassenExpression-Bodied Member5Polymorphismus & Interfaces
Compile- vs. Runtime-PolymorphismusInterface vs. abstrakte KlasseMehrfache InterfacesExplizite InterfacesUpcasting & DowncastingRecap – Shape Calculator3Klassenarchitektur
Instanz- vs. statische Daten'readonly' & 'const' SchlüsselwörterBacking FieldsZusammenfassung - Bankkonto-Manager6Kapselung
ZugriffsmodifikatorenProperties zur KapselungImplementierung von Data HidingImmutability-MusterRückblick – Studierendendaten