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



страница22/84
Дата03.01.2022
Размер0.54 Mb.
#112941
ТипПрограма
1   ...   18   19   20   21   22   23   24   25   ...   84
Класове
Свързани:
Изпитна тема1, Изпитна тема2
Модификатори

Забелязваме, че в декларацията на конструктора, може да се добавят модификатори – . За модификаторите, които познаваме и които не са модификатори за достъп, т.е. const и static, трябва да знаем, че само const не е позволен за употреба при декларирането на конструк­тори. По-късно в тази глава, в секцията "Статични конструктори" ще научим повече подробности за конструктори декларирани с модификатор static.

Видимост на конструкторите

По подобие на полетата и методите на класа, конструкторите, могат да бъдат декларирани с нива на видимост public, protected, internal, protected internal и private. Нивата на достъп protected и protected internal ще бъдат обяснени в главата "Прин­ципи на обектно-ориентираното програмира­не". Остана­лите нива на достъп имат същото значение и поведение като при полетата и методите.

Инициализация на полета в конструктора

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

Освен това, чрез конструкторите най-често инициализираме полетата на класа, със стойности зададени от нас, а не с подразбиращите се за типа.

Например, в примерите, които разглеждахме до момента, винаги полето name на обекта от тип Dog, го инициализирахме по време на неговата декларация:



string name = "Sharo";

Вместо да правим това по време на декларацията на полето, по-добър стил на програмиране е да му дадем стойност в конструктора:

public class Dog

{

private string name;



 

public Dog()

{

this.name = "Sharo";



}

 

// ... The rest of the class body ...



}

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

public class Dog

{

private string name = null;



 

public Dog()

{

this.name = "Sharo";



}

 

// ... The rest of the class body ...



}



Сподели с приятели:
1   ...   18   19   20   21   22   23   24   25   ...   84




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

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