Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Private. FName: TName; // Name қасиетінің мәніFName: TName; // Name қасиетінің мәні FAddress: TAddress; // Address қасиетінің мәні Protected constructor Create (Name: TName); procedure Show; function GetName: TName; function GetAddress: TAddress; procedure SetAddress(NewAddress: TAddress); Public property Name: TName // Name қасиеті property Address: TAddress // Address қасиеті End; Мұндағы Name – FName өрісімен байланысқан қасиет, GetName – FName өрісінен оқуға тағайындалған әдіс. Address – FAddress өрісімен байланысқан қасиет, GetAddress және SetAddress – сәйкес FAddress өрісіне оқуға және жазуға тағайындалған әдіс. Төменде TPerson класының объектілерін құруға және оның қасиеттеріне қатынауды қамтамасыз ететін TPerson класының әдістері келтірілген. constructor TPerson.Create(Name: TName); // TPerson класының конструкторы Begin FName:= Name; End;
function TPerson.GetName; // Name қасиетінің мәнін алатын әдіс Begin Result:= FName; End;
function TPerson.GetAddress; // Address қасиетінің мәнін алатын әдіс Begin Result:= FAddress; End; // Address қасиетінің мәнін өзгертетін әдіс procedure TPerson.SetAddress(NewAddress: TAddress); Begin If FAddress = ’’ then FAddress:= NewAddress; End; Қасиетке қатынау үшін бағдарламаның мәтінінде өрістер мен әдістердегі сияқты объектінің атынан, нүктеден және қасиеттің атынан тұратын құрамды атты қолдану керек, мысалы: Var Student: TPerson // кластың айнымалысын жариялау HisAddress: String; Begin Student:= TPerson.Create(’Иванов’); Student.Address:= ’ул. Садовая, д.3, кв.25’; ... HisAddress:= Student.Address; ... Student.Free; End; Address қасиетіне мән меншіктеу нұсқасын орындағанда компилятор әдісті шақыру нұсқасында оны қайта трансляциялайды. Student.SetAddress(’ул. Садовая, д.3, кв.25’); Сырт жағынан қарағанда бағдарламада қасиетті қолданудың объектінің өрісін қолданудан еш айырмашылығы жоқ. Бірақ қасиет пен объектінің өрісінің арасында принциптік айырмашылық бар: қасиетке мән меншіктегенде және оның мәнін оқығанда қандай да бір жұмысты атқаратын процедура автоматты түрде шақырылады. Мысалы, біз FAddress өрісіне тікелей керекті мәнді орналастыра аламыз Student.FAddress:= ’ул. Садовая, д.3, кв.25’; Бірақ, Address қасиетін қолдана отырып біз тек оқу мен жазуға тағайындалған әдістерге әртүрлі әрекет жасай аламыз: қасиетке меншіктелген мәннің корректілігін тексеру, экранға хабарламаның шығуын қамтамасыз ету, экрандағы объектінің сырт көрінісін өзгерту және т.б. Егер жазу немесе оқу кезінде қосымша әрекеттердің қажеттігі тумаса, онда сәйкес әдістің орнына өрістің атын нұсқау қажет: Type TPerson = class FAddress: TAddress; procedure SetAddress(NewAddress: TAddress); property Address: TAddress read FAddress write SetAddress; End; Қасиет нақты бір өріспен байланыспауы да мүмкін. Бұл жағдайда қасиетте қасиеттің типіне сай келетін берілгендермен әрекет жасау үшін екі әдіс анықталады. 2.7 Кластың құрылымы. Кластың элементтерінің көріну аймағы Object Pascal объектілерінің модельінде оларды қай аймақта қолдануға болатындығын анықтайтын (көріну аймағы) құрамды бөліктерге қатынасты қамтамасыз ететін механизм бар. Барлық класс секциядан тұратын құрылымнан тұрады. Әрбір секция арнайы резервтелген сөздермен жарияланады. Олардың қатарына: published (декларацияланған), private (меншік), protected (қорғалған), public (қатынас бар), automated (автоматталған). Әрбір секцияның ішінде ең алдымен өріс, одан кейін әдіс, қасиет және оққиға жарияланады. Класс құрылымына мысал: Type TMyClass = class (TControl)
|