Menu
Coddy logo textTech

Konstruktory

Część sekcji Programowanie obiektowe ścieżki C# w Coddy. Lekcja 7 z 70.

Konstruktor to specjalna metoda, która uruchamia się podczas tworzenia obiektu. Inicjalizuje właściwości i pola obiektu.

Konstruktor domyślny bez parametrów

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    
    // Konstruktor domyślny
    public Book()
    {
        Title = "Unknown";
        Author = "Unknown";
    }
}

Konstruktor parametryzowany

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    
    // Konstruktor z parametrami
    public Book(string title, string author)
    {
        Title = title;
        Author = author;
    }
}

Przeciążanie konstruktorów — wiele konstruktorów

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public int Pages { get; set; }
    
    // Konstruktor z dwoma parametrami
    public Book(string title, string author)
    {
        Title = title;
        Author = author;
        Pages = 0;
    }
    
    // Konstruktor z trzema parametrami
    public Book(string title, string author, int pages)
    {
        Title = title;
        Author = author;
        Pages = pages;
    }
}

Łańcuchowe wywoływanie konstruktorów za pomocą this

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public int Pages { get; set; }
    
    // Główny konstruktor
    public Book(string title, string author, int pages)
    {
        Title = title;
        Author = author;
        Pages = pages;
    }
    
    // Wywołuje główny konstruktor z domyślną liczbą stron
    public Book(string title, string author) : this(title, author, 0)
    {
    }
}

Tworzenie obiektów za pomocą różnych konstruktorów

Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);

Konstruktory mają taką samą nazwę jak klasa i nie mają typu zwracanego. Uruchamiają się automatycznie, gdy używasz słowa kluczowego new. Możesz mieć wiele konstruktorów z różnymi parametrami (przeciążanie).

challenge icon

Wyzwanie

Średni

Utwórz trzy konstruktory dla klasy Product, używając przeciążania i łańcuchowego wywoływania konstruktorów:

  • Konstruktor z 3 parametrami: name, price i stock
  • Konstruktor z 2 parametrami: name i price (stock domyślnie ma wartość 0)
  • Konstruktor domyślny bez parametrów (name = "Unknown", price = 0, stock = 0)

Użyj łańcuchowego wywoływania konstruktorów z this, aby uniknąć duplikowania kodu.

Spróbuj swoich sił

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})");
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator C# online