C# Конструктори
Конструктори
Конструктор — це спеціальний метод, який використовується для ініціалізації об’єктів. Перевагою конструктора є те, що він викликається, коли створюється об’єкт класу. Його можна використовувати для встановлення початкових значень для полів:
Приклад
Створити конструктор:
// Створити клас Car
class Car
{
public string model; // Створити поле
// Створити конструктор класу для класу Car
public Car()
{
model = "Mustang"; // Встановити початкове значення моделі
}
static void Main(string[] args)
{
Car Ford = new Car(); // Створити об’єкт класу автомобіля (це буде викликати конструктор)
Console.WriteLine(Ford.model); // Виведе значення моделі
}
}
// Створити "Mustang"
Зауважте, що ім’я конструктора має відповідати імені класу та не може мати тип повернення (наприклад, void
або int
).
Також зауважте, що конструктор викликається під час створення об’єкта.
За замовчуванням усі класи мають конструктори: якщо ви не створюєте конструктор класу самостійно, C# створить його для вас. Однак тоді ви не зможете встановити початкові значення для полів.
Конструктори економлять час! Подивіться на останній приклад на цій сторінці, щоб справді зрозуміти чому.
Параметри конструктора
Конструктори також можуть приймати параметри, які використовуються для ініціалізації полів.
У наступному прикладі до конструктора додається параметр string modelName
. Усередині конструктора ми встановлюємо model
значення modelName
(model=modelName
). Коли ми викликаємо конструктор, ми передаємо йому параметр ("Mustang"
), який встановлює значення model
до "Mustang"
:
Приклад
class Car
{
public string model;
// Створити конструктор класу з параметром
public Car(string modelName)
{
model = modelName;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang");
Console.WriteLine(Ford.model);
}
}
// Виведе "Mustang"
Ви можете мати скільки завгодно параметрів:
Приклад
class Car
{
public string model;
public string color;
public int year;
// Створити конструктор класу з кількома параметрами
public Car(string modelName, string modelColor, int modelYear)
{
model = modelName;
color = modelColor;
year = modelYear;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Console.WriteLine(Ford.color + " " + Ford.year + " " + Ford.model);
}
}
// Виведе Red 1969 Mustang
Порада: Як і інші методи, конструктори можуть бути перевантажені за допомогою різної кількості параметрів.
Конструктори економлять час
Коли ви розглядаєте приклад із попереднього розділу, ви помітите, що конструктори дуже корисні, оскільки вони допомагають зменшити кількість коду:
Без конструктора:
prog.cs
class Program
{
static void Main(string[] args)
{
Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}
З конструктором:
prog.cs
class Program
{
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Car Opel = new Car("Astra", "White", 2005);
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}