Бейсик, Паскаль сияқты дәстүрлі программалау
тілдерінде күрделі, үлкен программаларды
дайындаудың кемшілігі – ол үшін программалаушылар
тобының көп күш жұмсауы қажет болатын.
Программалауды жеңілдету үшін 80-жылдары объект,
класс (object, class) ұғымдары енгізіліп, объектілі
– бағдарлы программалау (ОБП) тәсілі
негізге алынды. ОБП – Паскальда қолданылатын процедуралық
және құрылымдық программалаудың және
модуль құрудың дамытылған түрі. Ол берілгендерді
белгілі бір абстракциялық деңгейде көрсетіп, модульдік
программалауды пайдаланады. Мысалы, Visual
Basic программалау жүйесі объектілі программалау
тәсілін пайдаланып, Qbasic тілі негізінде
визуальды түрде құрылған. Паскальдың ОБП
тәсілін пайдаланып құрылған жаңа нұсқасы
Object Pascal (Объектілі Паскаль) деп аталады. Delphi
осы тілдің негізінде дайындалған. Объектілі
программалаудың ыңғайсыздығы – онда
дәстүрлі программалау тәсілдері пайдалана
берілмейді, бірақ ондағы көп қиындықтар
арнайы тәсілдерді пайдалану арқылы тез
шешілген.
ОБП
тілінің дәстүрлі программалау тілдерінің
өзгешелігі – онда, өрістерге қоса, мынадай
ұғымдар негізге алынған: класс, объект, өңдеу тәсілі, объект қасиеті
және оқиға.
Өрістер
– Турбо Паскальдағы жазу (record) типінің
өрістері сияқты;
Қасиеттер
– объект сипаттамалары (параметрлері);
Тәсілдер
– кластың өрістері мен қасиеттерін
өңдеу процедуралар
мен функциялар;
объект
– түрлі мәндердің қасиеттері тәсілдерінің
жиынтығы;
оқиға
– объект жағдайының өзгеруі.
Класс
- өрістер, қасиеттер және тәсілдерінің
бірлігінен тұратын тип, не, жалпы түрде,
өңдеу тәсілдері не қасиеттері ортақ түрде
сипатталатын объектілер (нысандар) жиынтығы.
Жүйе объект үшін жадтың динамикалық облысынан
арнайы орын қалдырады. Яғни, шын мәнінде,
объект жай айнымалы емес, ол – жадтың
динамикалық облысының кездейсоқ адресін
сақтайтын көрсеткіш. Бірақ программада
оған Турбо Паскальда пайданылатын көрсеткіш
белгісі (^) енгізілмей жазылады.
Объект құрылған кезде автоматты түрде конструктор
(constructor) деп аталатын тәсіл шақырылып,
ол объектіні динамикалық облыста орналастырады,
динамикалық жадтан объектіні арнайы деструктор
(destructor) тәсілі жояды.
Сонымен, ОБП –да пайдаланылатын объект сөзінің
екі мағынасы бар: нақты объект (мысалы,
геометриялық дене, формада орнатылған
компонент, т.б.) және айнымалы (абстрактты,
дерексіз объект). Delphi-де екінші объект
нақты класс данасын анықтайды.
Класқа иерархиялық (бағынышты, жоғарыдан
төмен) кластардың енуі де мүмкін. Мысалы,
геометриялық фигуралар класы жазық фигуралар
және кеңістік фигуралары болатын екі
ішкі кластық фигураларға бөлінеді. Ал
жазық фигуралар класы төбелері бар (үшбұрыш,
көпбұрыш) және төбелерсіз (шеңбер, эллипс)
болып екі ішкі класқа бөлінеді. Объектілі
программалауда барлық кластар иерархиялық
түрде негізгі Tobject класынан тарайды (Tobject à Tpersistent à Tcomponent à …). Әдетте негізгі класты аталық,
бағыныңқы кластарды ұрпақ не сәбилік
кластар деп атайды (Tobject – барлық кластардың арғы атасы, Tcomponent
– барлық иерархиялық компоненттердің
жоғарғысы (компонент деп Tcomponent класының мұрагері
болатын класс данасын атайды)). Әр ұрпақ
өзінің аталық класының мүмкіндіктерін
(өрістерінің, қасиеттерінің, тәсілдерінің
сипаттамаларын) қабылдайды. Мысалы, Tobject
класының Create (бастапқы мән меншіктеу (инициалдау))
тәсілі барлық ұрпақ кластарға тиісті
(Tobject класында конструктор Create деп аталады).
Әр ұрпақ өзіне қосымша жаңа мүмкіндіктер
(сипаттамалар) қосып, келесі ұрпақтарға
беруі мүмкін.
Delphi –де класс атауын Т әрпінен бастау келісілген. Формаға
енгізілген компонент данасын сандық
индекс қосылған класс атауымен аталады.
Ұрпақ кластың сипатталу түрі:
type
<ұрпақ
класс атауы> = class (<негізгі класс атауы>);
end;
var
< объект > : < класс атауы>;
мұндағы класс мүшелері - өрістер, қасиеттер
және тәсілдер.
Мысалы,
type
Tform1= class (TForm)
Button1 : TButton;
Label1 : TLabel;
Procedure
Button1 Click (Sender : TObject);
end;
var
Form1 : Tform1;
TForm1
= class (TForm) жазуы Tform класының үлгісімен
құрылатын жаңа (ұрпақ) TForm1 айнымалысы
– класс данасы.
Программаны дайындау барысында Delphi модульдің Interface
бөліміне формаға енгізілген компоненттер
мен оқиғасы таңдалған тәсілдерді сипаттауды
автоматты түрде енгізеді, тәсілдерді
іске асыру нұсқаулары модульдің inplementation бөліміне қолдан жазылады.
Жалпы, Delphi –де класс деп өзіне ұқсас даналарды
дайындау үшін үлгі түрінде алынатын,
толық түрде дайындалған программа үзіндісін
де атайды. Программалаушы бұрын дайындалған
класс данасының көшірмесін түрлі программаларға
не бір программаның түрлі жерлеріне енгізіп,
программалауды және оның көлемін көп
жеңілдетуіне болады.
Delphi құрамына жүздеген дайын кластар енгізілген.
Әр компонент қатаң түрде тек бір класқа
ғана тиісті. Мысалы, Delphi – де форма (TForm)
компоненті - Forma класына тиісті, осы типті айнымалы
(Form1) – класс объектісі. Класс бөлігі ретінде
сипатталып, модульдің
Inplementation
(іске асыру) бөлігінде мәтіні жазылатын
сәйкес процедура - тәсіл, мысалы, procedure TForm1.Button1Click.
Форма ішіне орналастырылған TЕdit компонентінің
Edit1 данасын (объектісін) екі рет шерткен
кезде пайда болатын оқиғаны өңдеу тәсіліне
(процедурасына) мысал:
procedure
TForm1.Edit1Click(Sender : TObject);
begin
Edit1.Text:=’Сіз редакциялау өрісін екі рет
шертіңіз’;
end;
программаны іске қосу командасы берілген
соң компилятор автоматты түрде негізгі
модульге енгізілген төмендегі екі тәсілді
орындайды:
Application.CreateForm(TForm1, Form1);
Application.Run;
Бұлардың біріншісі жадта Form1 объектісін
құрады (объектіні инициалдайды), екіншісі
Application объектісіне қосымшаның негізгі
формасын іске қосуға нұсқау береді (Run).
Жоғарыда жазылған процедураның орындалу
нәтижесінде форманың Edit1 өрісіне оның
Text қасиетіне меншіктелген мәтін жазылады.
Ескерту.
Белгісіз жағдайда программада тәсілді
не қасиет орнату командасын иерархиялық
түрде жазу қажет, мысалы:
TForm1.Button1.FontSize:= 14;
Мұндағы иерархияның бірінші объектісі
– форма
(Form1), екінші объект – формада орнатылған Button1
түймесі, үшінші объект – түйменің шрифт
қасиеті; команда – форманың Button1 объектісіне
енгізілген FontSize (шрифт өлшемі) айнымалысына
14 мәнін меншіктеу. Яғни, объектілер арасына
қойылатын нүкте сәйкес иерархиялық объектіге
сілтеме.
Интерфейс бұл объектілердің жиынтығы, оның
көмегімен ақпаратты белгілі бағытқа
жіберу асырылады, - пішін, қарым – қатынас
терезелері, басқару элементтері және
т.б. Көптеген жағдайларда таңдап алынған
интерфейс барлық бағдарламаның құрылымын
анықтайды.
Жанұя деп өзінің ұрпақтарымен қоса алғандағы
класты айтамыз.
Негізгі объект деп - басқа объект орналасатын объектіні
айтамыз.
Көмекші объект деп – орналасатын объектіні айтамыз.
Класс – берілгендер мен оларға әрекет
жасайтын арнайы тип. Ол өріс, әдіс және
қасиеттерден тұрады. Кластың данасы болып объект
табылады.
Объект – белгілі тапсырманы орындауға
арналған, екілік бағдарламалық кодтың
автономды бөлігі болып саналады. Объектінің
барлық құрауыштары объект болып табылады,
бірақ керісінше емес.
Құрауыш
– Delphi – дің стандартты класы, Delphi ортасында
көрнекілік бағдарламаны іске асыруға
арналған. Құрауыш болып меню, батырмалар,
стандартты диалогтар (мысалы, қаріпті
таңдау, файлды сақтау), енгізу терезесі
және редактірлеу терезесі және т.б. табылады.
Құрауыштар өріс, әдіс және қасиеттерден
тұрады. Қолданушының құрауыштармен жұмысы,
оны негізгі терезедегі Құрауыштар палитрасынан
таңдап және пішіннің терезесіне орналастырып,
олардың қасиеттері мен мазмұнына қарай
белгілі оқиғаға ықпалын икемдеу болып
табылады. Delphi құрауыштары қолданушымен
жылдам қарым – қатынас жасау үшін қолданылады.
Құрауыштар қасиеті
– белгілі объекті берілгенде немесе
өзгергенде автоматты түрде оның атрибутын
өзгертетін құрауыштың өрісі. Құрауыштың
функциясын (атқаратын міндетін) анықтайды.
Құрауыштың оқиғасы
– құрауыштың қолданушы немесе операциялық
жүйемен әрекеттесуінің нәтижесінде пайда
болады. Әрбір құрауыш стандартты оқиғалардың
жиынынан тұрады. Құрауыш хабарламаны
өңдеу әдісінен тұрады, олардың әрқайсысы
құрауыштың белгілі оқиғаға ықпалын анықтайды
(пернені басу немесе тышқанды жылжыту).
Объектілі – бағытталған бағдарлама,
ол негізінде нақты өмірдің объектісімен
тәртібіне сай келетін қандайда бір құрылым
ретінде қарастырылатын объект түсінігі
бар бағдарламаны құрудың әдістемесі.
Объектілі – бағытталған бағдарламалау
әдістемесі қолданушымен шешілетін тапсырмалар,
объект және оларға қолданылатын операциялар
деген терминдермен сипатталады. Мұндай
түрдегі бағдарламаны объектілер жиынымен
олардың арасындағы байланысты көрсетеді.
1.5 Объектілі
– бағытталған бағдарламалаудың
негізгі түсініктері:
-
объект;
-
объектінің қасиеті;
-
объектінің әдісі;
-
оқиға;
-
объектілер класы.
Объектілі – бағытталған бағдарламалау
– бұл жобалау мен қосымшаларды объектілердің
көмегімен жазуды талду әдістемесі болып
табылады.
Қоршаған ортаның шынайы объектілері
үш базалық объектіге ие:
- Олар қасиеттер жиынтығына ие;
- Бұл қасиеттерді әр түрлі әдістермен
өзгертуге және
- Қоршаған ортаға қалай әсерін тигізсе,
дәл солай объектінің өзінде де жағдайларға
әсерін тигізеді.
Бағдарламалау тілінің дәл осындай түрінде
қасиеттердің жиынтығы (объектіге тән
берілгендер құрылымы) және жағдайлары
ретінде объект ұғымы шықты, берілген
объект әсерін тигізе алады және ереже
бойынша объектінің қасиетінің өзгеруіне
әкеледі.
Объектілі – бағытталған бағдарламалаудың
негізгі түсініктері:
Объект деп – қасиеттер мен әдістерді
қамтитын кодтың фрагментін айтады. Объектілі
кластар деп аталатын (және мәліметтерді
өңдеуді) хор негізінде құрылуы объектілі
– бағытталған бағдарламалау, бағдарламаны
іздеу процесін қарастырады. Өйткені объектінің
қасиеттері мен әдістері белгілі бір жай
ғана модульге бағынады.
Модуль, Private, Public, Friend кілттік сөздерімен
анықталады.
Әр түрлі класты бұл класқа жалпы ерекшеліктерін
белгілеу – қуатты механизмнің абстракциясы
болып табылады – себебі кез - келген ғылым
абстракциялаудан және жіктелуден басталады,
олар қарастырылып отырған пәндік аймақтың
қиындықтарымен күресуге көмектеседі
Мысалы: TObject, TForm, TButton және т.б.
-
Кластың өрісі, қасиетке сай келеді (property), әдетте қасиеттің атымен аталады, бірақ F деген префикстен басталады.
Мысалы: FCount: Integer;
property Count: Integer read FCount write SetCount;
-
Әдістің параметрі, оның мәні қандай да бір өрістің класына меншіктеледі, өрістің атымен аталады, бірақ А деген префикстен басталады.
Мысалы: procedure SetCount(ACount: Integer);
-
Әдістің аты, оның көмегімен қасиеттің мәні оқылады, әдетте Get сөзінен басталады.
Мысалы: function GetParam: Integer;
-
Әдістің аты, оның көмегімен қасиеттің мәні жазылады, әдетте Set сөзінен басталады.
Мысалы: SetCount әдісі (жоғарыдан
қараңыздар).
-
Конструктор
әдісіне әдетте Create аты беріледі.
Мысалы: constructor Create(Owner: TComponent);
constructor Create(AName: String);
-
Деструктор әдісіне әдетте Destroy аты беріледі:
Мысалы: destructor Destroy; override;
-
Хабарламаны өңдейтін әдістердің аттары WM префиксінен басталады, хабарламаның типтерінің аттары - TWM , ал хабарламаның индексі - WM_ - префиксінен басталады.
Мысалы: procedure WMSetFocus (var Message: TWMSetFocus);
message WM_SetFocus;
message WM_Quit; {әр кез бағдарламаның орындалуын тез
арада тоқтату керек болғанда өрбиді}
-
Оқиғаның өңдеуішіне қатынауды жүзеге асыратын қасиеттің аттарына On префиксі бар ат тағайындалады.
Мысалы: property OnChange: TNotifyEvent read FOnChange write FOnChange;
|