Costruttori
Fa parte della sezione Programmazione orientata agli oggetti del percorso C# di Coddy. Lezione 7 di 70.
Un costruttore è un metodo speciale che viene eseguito quando crei un oggetto. Inizializza le proprietà e i campi dell'oggetto.
Costruttore predefinito senza parametri
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
// Costruttore predefinito
public Book()
{
Title = "Unknown";
Author = "Unknown";
}
}Costruttore parametrizzato
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
// Costruttore con parametri
public Book(string title, string author)
{
Title = title;
Author = author;
}
}Sovraccarico dei costruttori - più costruttori
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public int Pages { get; set; }
// Costruttore con due parametri
public Book(string title, string author)
{
Title = title;
Author = author;
Pages = 0;
}
// Costruttore con tre parametri
public Book(string title, string author, int pages)
{
Title = title;
Author = author;
Pages = pages;
}
}Concatenamento dei costruttori con this
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public int Pages { get; set; }
// Costruttore principale
public Book(string title, string author, int pages)
{
Title = title;
Author = author;
Pages = pages;
}
// Chiama il costruttore principale con il numero di pagine predefinito
public Book(string title, string author) : this(title, author, 0)
{
}
}Creare oggetti con costruttori diversi
Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);I costruttori hanno lo stesso nome della classe e non hanno un tipo restituito. Vengono eseguiti automaticamente quando usi la parola chiave new. Puoi avere più costruttori con parametri diversi (overloading).
Sfida
MedioCrea tre costruttori per la classe Product usando l'overloading e il concatenamento dei costruttori:
- Un costruttore con 3 parametri: name, price e stock
- Un costruttore con 2 parametri: name e price (stock è impostato su 0 per impostazione predefinita)
- Un costruttore predefinito senza parametri (name = "Unknown", price = 0, stock = 0)
Usa il concatenamento dei costruttori con this per evitare duplicazioni di codice.
Provalo tu
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})");
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti della programmazione orientata agli oggetti
File esterniNamespace e direttiveIntroduzione a classi e oggettiLa parola chiave "this"Metodi e parametriCampi e proprietàCostruttoriInizializzatori di oggettiRiepilogo - Calcolatrice semplice4Ereditarietà
Sintassi di base dell'ereditarietà (:)La parola chiave 'base'Parole chiave virtual e overrideClassi sealedLa classe base 'object'Riepilogo - Gerarchia dei dipendenti7Funzionalità avanzate
Sovraccarico degli operatoriIndicizzatori (this[])Override di ToString()Metodi di estensioneRiepilogo - Lista personalizzata10Pattern di progettazione Parte 1
Introduzione ai pattern di progettazioneSingleton thread-safePattern FactoryPattern Observer (eventi)Pattern Strategy2Proprietà e membri statici
Proprietà implementate automaticamenteProprietà di sola lettura e di sola scritturaCampi e metodi staticiClassi staticheMembri con corpo di espressione5Polimorfismo e interfacce
Polimorfismo a compile time e runtimeInterfaccia o classe astrattaInterfacce multipleInterfacce espliciteUpcasting e downcastingRipasso: calcolatore di forme8Concetti avanzati di programmazione a oggetti
Composizione invece dell'ereditarietàTipi generici (classi e metodi)Delegati ed eventiAttributi e reflectionIDisposable e istruzione usingNozioni di base sull'iniezione delle dipendenze11Pattern di progettazione, parte 2
Pattern del ComandoPattern dell’AdattatorePattern del DecoratorePattern Template MethodPattern dello StatoPattern Composito3Architettura delle classi
Dati di istanza vs staticiParole chiave 'readonly' e 'const'Campi di supportoRiepilogo - Gestore di conti bancari6Incapsulamento
Modificatori di accessoProprietà per l'incapsulamentoImplementazione dell'occultamento dei datiModelli di immutabilitàRiepilogo - Registri degli studentiEsercitati da solo: Compilatore C# online