Конструкторлар

Конструкторлар жалпы класты немесе оның экземплярларын инициалдау әрекеттерін жүзеге асырады. Ол класс объектісін жасау кезінде new операциясы арқылы шақырылады. Конструктор аты класс атымен бірдей болады.

Конструкторлар қасиеттері:

•Конструктор ешқандай мән (тіпті void типін де) қайтармайды.

•Кластың, инициалдаудың әр түрлері үшін әртүрлі параметрлері бар, бірнеше конструкторлары болуы мүмкін.

•Егер программалаушы бірде-бір конструкторды көрсетпесе немесе кейбір өрістер инициалданбаса, мәндік типтегі өрістерге — нөл, ал сілтемелік типтегі өрістерге — null мәні меншіктеледі.

•Параметрсіз шақырылатын конструктор (үнсіз) келісім бойынша алынған конструктор деп аталады.

Конструкторы бар класс мысалы

using System;

namespace Listing5_6 {

class Demo

{

public Demo(int a, double y) // конструктор

{

this.a = a;

this.y = y;

}

int a;

double y;

}

class Class1

{ static void Main()

{

Demo a = new Demo(300, 0.002); // конструкторды шақыру

Console.WriteLine(a.Gety()); // нәтиже: 0,002

Demo b = new Demo(1, 5.71); // конструкторды шақыру

Console.WriteLine(b.Gety()); // нәтиже: 5,71

} } }

Статикалық конструкторлар.

Осы конструктор тек бір рет орындалады, барлық жазбалы конструкторларға қарама қарсы, олар констукторлар түрлері әрбір жаңа обьект сайын орындалады..

Статикалық конструктордың жазылуының бірінші себебі, кластың кейбір статикалық жолдар мен құрлымының ішкі инцализациялануы, олай болған жағдайда класс бірінші орындалады.

.NET атқарушы ортада ешқандай кепілдік бермейді, статикалық конструктр шақырылынатын болады, сол себебтен кодты бөгет жасауға болмайды. Нақты болжам жасауға болмайды, қандай ретпен статикалық конструктр әр түрлі класспен.

Статикалық конструктр көп дегенде бір рет іске асады және кез-келген негізгі класстың біріншісіне шақырылады. С# статикалық конструкторы ештеңеге қарамастан кез –келген класс мүшеснде іске асады.

Статикалық конструктор ешқандай модификаторға мүмкіндікке ие емес. Ешқашан C# тың басқа кодымен шақырмайды, әрқашан тек қана мүмкіндік ортасында.NET шақырылған класста, сондықтан ешкандай модификатор мүмкіндігі public немесе private мәні жоқ. Сол себебті статикалық конструктор ешқандай параметрді қабылдай алмайды, әр-бір кластың бір ғана статикалық конструкторы болады. Статикалық конструктор мүмкін болатын тек қана статикалық класс мүшесіне мүмкіндігі бар, бірақ экзампляр мүшесіне емес.

Өріс.

Класта сипатталған айнымалылар класс өрістері деп аталады.

Өрістерді сипаттау кезінде элементтердің әртүрлі сипаттамаларын беретін атрибуттар мен спецификаторларды көрсетуге болады:

[ атрибуттар ] [ спецификаторлар ] [ const ] типі аты

[ = бастапқы_мәні ]

Алдымен барлық өрістер автоматты түрде өзіне сәйкес типтегі нөлмен инициалданады (мысалы, int типтегі өрістерге 0 меншіктеледі, ал объектілерге сілтемелерге —null мәні меншіктеледі). Мұнан кейін барып оларға тікелей инициалдау кезінде берілген мәндер меншіктеледі.

Класс өрісін пайдалану үшін қатынасу операциясы (нүкте) қолданылады. Нүктенің оң жағында өріс аты, ал сол жағын-да – жай өрістер үшін экземпляр аты немесе статикалық өрістер үшін – класс аты жазылады. Келесі мысалда қарапайым Demo класы мен оның өрістерін пайдаланудың екі түрлі жолы көрсетілген. Ондағы у өрісі жабық болып саналады, өйткені оның типі алдында ешқандай спецификатор жоқ, сол себепті ол алдын ала келісім бойынша private болып саналады.


9. Жекеленген кластар. Статикалық кластар. Object класы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: