Основы объектно-ориентированного программирования на языке C# book | Page 117
7.3 Конструктори класiв
ках. Нехай необхiдно мати конструктор, який автоматично збiльшує
поточний iдентифiкацiйний номер лiфту й ще один конструктор, який
задає цей номер “вручну”. Для такоı̈ ситуацiı̈ краще використовувати
“зчепленi” конструктори:
class Elevator
{
static public int IdNumber=0;
public int Height;
public int Width;
public int Length;
public int Capacity;
public int Number;
public Elevator()
: this(0,0,0,0)
{
}
public Elevator(int Height, int Width, int Length, int Capacity)
: this(Height, Width, Length, Capacity, ++IdNumber)
{
}
public Elevator(int Height, int Width, int Length, int Capacity,
int Number)
{
this.Height = Height;
this.Width = Width;
this.Length = Length;
this.Capacity = Capacity;
this.Number = Number;
}
}
class Program
{
static void Main(string[] args)
{
Elevator FirstElevator = new Elevator();
Console.WriteLine(FirstElevator.Number);
Elevator SecondElevator = new Elevator(1,2,3,4);
Console.WriteLine(SecondElevator.Number);
Elevator ThirdElevator = new Elevator(11, 22, 33, 44, 10);
Console.WriteLine(ThirdElevator.Number);
Console.ReadKey();
}
}
}
Пiсля виконання програма роздрукує значення 1, 2, 10 у стовб-
чик. При виклику першого конструктора без параметрiв Elevator
FirstElevator = new Elevator() буде викликаний конструктор з чо-
тирьма аргументами за допомогою this(0,0,0,0) . Цей контруктор
отримає в якостi фактичних аргументiв чотири нуля. Потiм констру-
ктор з чотирма параметрами викличе конструктор з пят’ю. I п’ятим
117