Съдържание:
Определение - Какво означават членовете на класа?
Членовете на класа в C # са членовете на клас, които представляват данните и поведението на клас.
Членовете на класа са членове, декларирани в класа, и всички онези (с изключение на конструктори и деструктори), декларирани във всички класове в нейната наследствена йерархия.
Членовете на класа могат да бъдат от следните видове:
- Константи, представляващи постоянни стойности
- Полета, представляващи променливи
- Методи, предоставящи услуги като изчисление или други действия на своите членове
- Свойства, които определят характеристиките на класа и включват действия за извличането и модифицирането им
- Събития, генерирани за комуникация между различни класове / обекти
- Индекси, които помагат при достъпа до екземпляри от клас, подобни на масиви
- Оператори, които определят семантиката, когато се използват в изрази с екземпляри от клас
- Конструктори на инстанции, за да инициализират членове на класните инстанции
- Статичен конструктор за инициализиране на самия клас
- Деструктори за изпълнение на действия, необходими за извършване, преди да бъдат изхвърлени екземплярите на класа
- Типове, които са локални за класа (вложен тип)
Членовете на класа могат да бъдат конкретизирани поотделно с която и да е от следните възможности за достъп:
- Публично достъпен чрез всеки код в рамките на текущ или външен монтаж
- Защитени - достъпност в рамките на един и същи клас или неговия производен клас
- Частна - достъпност в рамките на един и същи клас
- вътрешна - достъпност в текущия монтаж
- защитена вътрешна - достъпност в текущия монтаж или класове, получени от съдържащ клас
За разлика от Java, където нивото на достъпност по подразбиране на член на класа е публично, то е частно в C #.
Техопедия обяснява членовете на класа
Членовете на класа се инициализират в конструктори, които могат да бъдат претоварени с различни подписи. За класове, които нямат конструктор, ще се генерира конструктор по подразбиране, който инициализира членовете на класа (до стойности по подразбиране).
За разлика от C ++, C # позволява клас да наследява само от един базов клас. Въпреки това, клас може да произлиза от множество интерфейси, но всички членове на интерфейса трябва да бъдат реализирани. Тези членове на интерфейс (и) за изпълнение на класове имат публична видимост по подразбиране и не могат да имат други модификатори на достъп.
Всички членове на базовия клас с изключение на конструкторите се наследяват в производен клас. Извлечените членове на класа могат да скрият члена на базовия клас, за който трябва да се използва 'нова' ключова дума, за да покаже, че базовият член не е отменен и да се избегнат предупрежденията на компилатора.
Членът на статичния клас е член на статичния клас (който не може да бъде инстанциран или наследен), до който може да се осъществи достъп само с името на класа. За разлика от потребителския член, той има едно копие на статичен член, който се инициализира преди да бъде достъпен за първи път и преди неговия статичен конструктор (ако има такъв).
Членовете на абстрактен клас предотвратяват директна инстанция и трябва да бъдат внедрени в производен клас, за да може да се използва. За да се предотврати наследяването на клас или членове на класа, класът или неговите членове могат да бъдат декларирани като „запечатани“. Членовете на класа могат да се използват като константа за време на компилиране, като се използва модификатор const и като константи на изпълнение, използвайки модификатор „само за четене“.
Докато декларирате членовете на класа в ново пространство за декларации, се прилагат следните правила:
- С изключение на конструктори и деструктори, всички останали членове трябва да имат име, различно от името на класа
- Имената на константа, поле, свойство, събитие или тип трябва да бъдат уникални в класа
- Множество методи могат да бъдат декларирани с едно и също име, но трябва да се различават в подписа си
- Подписът на индексатора и оператора трябва да бъде уникален сред декларираните в класа
- Членът на класа не може да има запазени подписи, които са имена на членове, запазени за свойства, събития, индексатор и „Финализиране“
- Тип на член, параметър и стойност на връщане на метод, делегат или индексатор трябва да бъдат достъпни като самия член
- Определените от потребителя оператори трябва да имат ниво на достъпност като публично