7. КЛАСС ҰҒЫМЫ
7.1 Класс ұғымы
C# тілі объекті-бағытталған бағдарламалау тілі болып табылады. Оның
негізгі ұғымы - класс. C# тілін оқу барысында барлық мысалдарда біз класс
типіндегі құрылымдарды қолданған болатынбыз.
Осы бөлімде тек қана
кластар қарастырылады.
C#
тілінде
бағдарламалауға
арналған
кітаптарда
келтірген
анықтамалардан бастайық.
Фаронов В.В. анықтамасы бойынша класс алдында class қызметтік сөзі
тұратын код үзіндісі арқылы анықталады [1]: «Класс дегеніміз – деректер
типі, яғни кластың нақты даналары - объекттерді дайындалатын «схема».
Павловская Т.А. [2] анықтамасы: «Класс дегеніміз кластың даналары
деп аталатын нақты объекттер жиынтығының сипаттамалары мен әрекеттерін
анықтайтын жалпылама ұғым».
Ескеретін жағдай, C# тілі пайда болуына дейін ОББ бар болған және
класс ұғымы бұрыннан қолданылады. Әдебиетте
кездескен ең қысқа
анықтаманы келтірейік: «Кластар дегеніміз – бағдарлама жасаушы
анықтайтын тип».
Осы анықтамада кластың өте маңызды ерекшелігі көрсетілген – ол –
массивтерге, жазуларға немесе құрылымдарға қарағанда жаңа деректер типі.
Бірақ, бағдарламашы анықтайтын кез келген тип класс бола бермейді.
Класты анықтаған кезде екінші бір маңызды ерекшелігі - класс құрамының
болуы, кластың қысқа түрде жазылуы және оның оңай есте сақталуы.
Класс дегеніміз – өрістерден,
әдістерден және
оқиғалардан тұратын деректер типі.
Деректер типі дегеніміз – класс данасы деп аталатын көптеген
объекттердің қасиеттері мен әрекеттерін сипаттайтын семантикалық бірлік.
Семантикалық класс класс өрістері, класс әдістері мен оқиғаларының
сипаттамасы деп аталатын деректер сипаттамасын ұсынады.
Кейбір авторлар модуль болып келетін кластарды жеке
топтарға бөледі,
мысалы, басқару элементтерінің класы. Ондай кластардың қосымша
қызметтері бар. Олар жоба құрылымының жеке архитектуралық бірлігі
болып келеді.
Кластың жазба пішімін қарастырайық. Класс жазбасының пішімінде
class қызметті сөзінен кейін оның атауы
және одан кейін фигуралы
жақшаларда класс денесі жазылады. Бұл класс сипаттамасының ең қысқа
құрамы болып келеді. Кластың жалпы сипаттамасы мына пішімде болады
(міндетті емес элементтер квадратты жақшаларда көрсетілген):
[ атрибуттар ] [ спецификаторлар ]
class кластың_атауы [ : түп тегі ]
{ кластың_денесі }
,
мұнда
атрибуттар – класс туралы қосымша мәліметті береді;
спецификаторлар – класс құрамына қол жеткізу шарттарын анықтайды.
түп тегі(
родители) – базалық кластар;
класс денесі – класс элементтерінің құрамын анықтайды.
Класты жариялауда мүмкін спецификаторлар:
abstract, sealed және
protected. Олар туралы мұрагерлікті қарастырған кезде толығырақ айтылатын
болады. Private, public, static және interna
l спецификаторлары бағдарлама
үшін кластың қолжететімділігін анықтайды. Private спецификаторы кластың
көрінуін толық жабады, ал public спецификаторы класты бағдарламаның кез
келген үзіндісіне көрсетеді (қол жететіндікті анықтайды).
Негізінде класта
internal қол жеткізу спецификаторы болады. Класс құрылымда анықталған
және онда қол жетімді болады. Static спецификаторы осы класқа тиісті
айнымалыны (класс объектісін) құрмай-ақ класс және оның элементтерін
пайдалануға мүмкіндік береді.
Барлық спецификаторларды класта немесе оның жеке мүшелерінде
қолдануға болады, мысалы, өрістерде, әдістерде.
Класты сипаттау пішімінің кейбір міндетті емес элементтерін біз келесі
бөлімдерде қарастыратын боламыз.
Класс дегеніміз –белгілі бір мәндермен «толтырылатын» үлгі, яғни
класс типіндегі айнымалы – класс данасын әзірлеуге арналған деректер типі.
Бағдарламада түрлі мәндерді бере отырып біз кластың әр түрлі
объекттерді көретін боламыз, бірақ кластың типі өзгермейді.
Класты атаулар кеңістігінің ішінде
немесе басқа кластың ішінде
сипаттауға болады. Соңғы жағдай бойынша класты қабаттасқан класс деп
атайды.
C# тілінде класс сілтемелік тип болып келеді және класс объектісін
компьютер жадысында орналастыру үшін new операторын қолдану керек.