Программалау іі» пәні бойынша 050111 «Информатика»


Лекция 21 Объектілі-бағдарлы программалау тәсілі



бет19/29
Дата14.06.2016
өлшемі2.7 Mb.
#135126
түріПрограмма
1   ...   15   16   17   18   19   20   21   22   ...   29

Лекция 21

Объектілі-бағдарлы программалау тәсілі.


Жоспар:

1. Объектілі-бағдарлы программалау тәсілі жөнінде

2. Мұрагерлік. Инкапсуляция. Полиморфизм.

1. Объектілі-бағдарлы программалау тәсілі жөнінде


Бейсик, Паскаль сияқты дәстүрлі программалау тілдерінде күрделі, үлкен программаларды дайындаудың кемшілігі – ол үшін программалаушылар тобының көп күш жұмсауы қажет болатын. Программалауды жеңілдету үшін 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 мәнін меншіктеу. Яғни, объектілер арасына қойылатын нүкте сәйкес иерархиялық объектіге сілтеме.



Достарыңызбен бөлісу:
1   ...   15   16   17   18   19   20   21   22   ...   29




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

    Басты бет