Лекциялар жинағы жинақтаған: Ражабова Аида 2012-2013 оқу жылы мазмұНЫ мазмұны 2 кіріспе 3


Кластың құрылымы. Кластың элементтерінің көріну аймағы



бет9/21
Дата14.06.2016
өлшемі3 Mb.
#135188
түріЛекция
1   ...   5   6   7   8   9   10   11   12   ...   21

2.7 Кластың құрылымы. Кластың элементтерінің көріну аймағы


Object Pascal объектілерінің модельінде оларды қай аймақта қолдануға болатындығын анықтайтын (көріну аймағы) құрамды бөліктерге қатынасты қамтамасыз ететін механизм бар. Барлық класс секциядан тұратын құрылымнан тұрады. Әрбір секция арнайы резервтелген сөздермен жарияланады. Олардың қатарына: published (декларацияланған), private (меншік), protected (қорғалған), public (қатынас бар), automated (автоматталған). Әрбір секцияның ішінде ең алдымен өріс , одан кейін әдіс, қасиет және оққиға жарияланады. Класс құрылымына мысал:

type

TMyClass = class(TControl)



private

... {меншік жариялану мына жерде}



protected

... {қорғалған жариялану мына жерде}



public

... {қатынас бар жариялану мына жерде}



published

... { жариялану мына жерде}



end;

Секциялар кластың құрамына кіретін элементтердің көріну аймағын анықтайды:



  • Private – көріну аймағын минимумге дейін кішірейтеді: сипаттаудың жабық элементтеріне тек класс сипатталған модульде орналасқан берілген кластың және бағыныңқы бағдарламаның әдістерінің ішінде ғана қатынауға болады. Private секциясында анықталған элемент басқа модульдерде орналасқан жақын ұрпақ кластарға да қол жетпейтін болып қалады. Әдетте private секциясына класс өрістерінің сипаттамасын орналастырады, ал осы өрістерге қатынасты қамтамасыз ететін әдістерді protected секциясына орналастырады.

  • Public – класс жарияланған uses тізімінде модульге сілтемеден тұратын ағымды және кез – келген бағдарламаның модулінде көрінетін элементтер жиынынан тұрады.

  • Published – ол Public сияқты, бірақ айырмашылығы тек мынада, published секциясы құрауыштарды жариялауда қолдану үшін арнайы даярланған. Бұл секцияға орналастырылған қасиеттер тек бағдарламаның орындалу барысында ғана емес сонымен қатар көрнекілік конструкциялау кезінде Объект Инспекторының терезесінде де оған қатынауға болады. Сондықтан published секциясында жарияланған өрістер класс типтес болуы керек. Пішін (мысалы, TForm1) класының жариялануының басында орналасқан аты жоқ секция, үнсіздікпен published секциясы болып табылады.

  • Protected – кластың және оның кез – келген ұрпақ кластарының әдістеріне ғана қатысты элементтерден тұрады және олар сол модульде орналасты ма? жоқ па? одан тәуелсіз. Әдетте protected класына кластың әдісінің сипаттамасын орналастырады.

  • Automated – OLE-объект Автоматизацисы интерфейсіне қосылатын қасиеттер мен әдістерді жариялауға қолданылады. Бұл секцияның мүшелерінің көріну аймағы шектелмеген.

  • Бір кластың төңірегінде ретсіз кез – келген секция құрылуы мүмкін. Секциялардың орналасу тәртібі де әртүрлі болуы мүмкін. Сонымен қатар кез – келген секция бос болуы мүмкін.

2.8 Кластарға операциялар қолдану. IS және AS кілттік сөздері


Кластарға екі операция қолдануға рұқсат етілген – IS және AS операциялары.

1. IS операторы.



IS операторының көмегімен берілген класс нұсқалған типке тиісті ме соны анықтауға болады. IS операторынан тұратын өрнектің синтаксисінің түрі мынандай болады:

object is class

Бұл өрнек логикалық типтен (boolean) тұрады, егер object айнымалысы class класының объектісі немесе кластардың біреуінің объектісі болса, онда TRUE мәнін қайтарады, әйтпесе – FALSE.

Мысал 2.8.1

IF ActiveControl IS TEdit THEN ...

IS операторы бульдік мәнді қайтарады.

TRUEегер тексерілетін айнымалы ActiveControl берілген типке қатысты болса (TEdit). Сонымен қатар нұсқалған тип тексерілетін айнымалының арғы – тегі болып табылса (яғни ActiveControl TEdit класының немесе одан туындаған бір кластың объектісі болса).

FALSE – кері жағдайда.

Мысал 2.8.2

IF ActiveControl IS TObject THEN DoSomeThing;

Барлық кластар TObject класының ұрпақ кластары болғандықтан, DoSomeThing процедурасы кез – келген жағдайда орындалады.

2. AS операторы.

AS опрераторы нұсқағышты нақты типке келтіру үшін қолданылады. AS операторынан тұратын өрнектің синтаксисінің түрі мынандай болады:

object as class

Бұл өрнектің есетелінуінің нәтижесі болып class класының типіне немесе class класының ұрпақ – класының типіне сай келетін объектіге сілтеме табылады. Бағдарламаның орындалу барысында object class класы типті немесе class класының ұрпақ – класының типті немесе nil типті болуы мүмкін. Үйлеспеген типке келтіру ерекше жағдайдың өрбуіне әкеп соғады.

Мысал 2.8.3

WITH ActiveControl AS TEdit DO DoSomeThing;

Келтірілген фрагментте ActiveControl айнымалысы қандай да бір класқа нұсқағыш болуы мүмкін. AS операторының көмегімен бұл нұсқағыш TEdit – тегі нұсқағышқа түрленеді. Егер ActiveControl айнымалысы TEdit типінің (немесе оның бір ұрпақ кластарының) объектісі болып табылмайтыны анықталса, онда типтің келтірілуі орындалмайды және DoSomeThing әдісі шақырылмайды. Кері жағдайда типтердің келтірілуі орындалады және DoSomeThing әдісі шақырылады.



Мысал 2.8.4

with Sender as TButton do // егер Sender TButton типтен тұрса

begin // немесе TButton – нан ұрпақ -тип

Caption := '&Ok';

OnClick := OkClick;

end;

...


(Sender as TButton).Caption := '&Ok'; // TButton немесе оның ұрпақтары типтес

// Sender айнымалысының Caption қасиетіне '&Ok' мәні меншіктеледі


Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   ...   21




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет