Да си припомним: какво са класовете и обектите?



страница27/84
Дата03.01.2022
Размер0.54 Mb.
#112941
ТипПрограма
1   ...   23   24   25   26   27   28   29   30   ...   84
Класове
Свързани:
Изпитна тема1, Изпитна тема2
: this([
])


Към познатата ни форма за деклариране на конструктор (първия ред от декларацията показана по-горе), можем да добавим двоеточие, следвано от ключовата дума this, следвана от скоби. Ако конструкторът, който искаме да извикаме е с параметри, в скобите трябва да добавим списък от параметри parameters_list_2, които да му подадем.

Ето как би изглеждал кодът от предходната секция, в който вместо да повта­ряме инициализацията на всяко едно от полетата, извикваме конструк­тори, декларирани в същия клас:



// Nо parameters

public Dog()

: this("Sharo") // Constructor call

{

// More code could be added here



}

 

// One parameter



public Dog(string name)

: this(name, 1) // Constructor call

{

}

 



// Two parameters

public Dog(string name, int age)

: this(name, age, 0.3) // Constructor call

{

}



 

// Three parameters

public Dog(string name, int age, double length)

: this(name, age, length, new Collar()) // Constructor call

{

}

 



// Four parameters

public Dog(string name, int age, double length, Collar collar)

{

this.name = name;



this.age = age;

this.length = length;

this.collar = collar;

}


Както е указано чрез коментар в първия конструктор от примера по-горе, ако е необходимо, в допълнение към извикването на някой от другите конструктори с определени параметри всеки конструктор може в тялото си да добави код, който прави допълнителни инициализации или други действия.

Конструктор по подразбиране

Нека разгледаме следния въпрос – какво става, ако не декларираме кон­струк­тор в нашия клас? Как ще създа­дем обекти от този тип?

Тъй като често се случва даден клас да няма нито един конструктор, този въпрос е решен в езика C#. Когато не декларираме нито един конструк­тор, компила­то­рът ще създаде един за нас и той ще се използва при създаването на обекти от типа на нашия клас. Този конструктор се нарича конструктор по подразби­ране (default implicit constructor), който няма да има параметри и ще бъде празен (т.е. няма да прави нищо в допълнение към подразбиращото се зануляване на полетата на обекта).







Сподели с приятели:
1   ...   23   24   25   26   27   28   29   30   ...   84




©obuch.info 2024
отнасят до администрацията

    Начална страница