Жоспар №14500

Object Pascal (Delphi) тіліндегі кластар: иерархия, мұрагерлік және полиморфизм

Сұрақ-жауап

Сұрағыңызға жасанды интеллект жауап береді

Мазмұны І.Кіріспе.........................3 ІІ. Негізгі бөлім 1.1.Кластар иерархиясы.............................4 1.2. Кластар және Delphi – дің обектілері.....................7 2.1.Мұрагерлік.........................7 2.2.Полиморфизм.................. 10 3.Кластарды хабарлау...............................19 ІІІ.Қорытынды.............24 Пайдаланған әдебиеттер...........................25 Кіріспе Программалау технологияларының негізгі бағыттарының бірі – обьектіге бағытталған бағдарламалау Бұл тәжірибе алудың мақсаты студенттердің информатика, программалау технологиялары, компьютерлік Жалпы обьектіге бағытталған бағдарламалау тәсілдерінің ерекшелігі, алдын ала құрылып 1.1 Кластар иерархиясы Object Pascal тіліндегі кластар деп өрістен, әдістен және қасиеттерден Type TmyClass=class(TObject) Field:integer; … End; Var MyClass:TmyClass; Begin … MyClass^.Fied:=0; // Қате! Ол былай жазылуы тиіс: MyClass.Fied:=0; … End. Туынды класс бір базалық кластан артық класқа мұра ете Object Pascal құрамындағы барлық кластар TObject класының ең түпкі Негізінде Delphi – де қолданылатын кластар мен компоненттің түрлері 1- сурет. VCL иерархиялық база класы. VCL кітапханасында кластар жай мұрагерлік механизмінің класы ретінде қолданылады. 2- сурет. VCL – кітапханасындағы иерархиялық класс. TObject класы VCL кітапханадағы барлық обьектінің сызбаларын инкапсуляциялайды. Егерде Жаңа кластың жариялануы Type секциясында орындалады. TPersistent класы өзінің Tobject ата – анасының мүмкіндіктерін кеңейтеді: TComponent класы өз кезегіндегі, класты құраушының ортасымен әрекеттесіп, оны TControl класы файлдармен және класты құраушының ортасымен ғана жұмыс Ал оның ұрпағы TWinControl Windows терезелерін де құра алады Ішкі орналасуындағы айырмашылыққа қарамастан қысқа ShortString және ұзын String Обьектінің бетіне Canvas қасиеті сәйкес келеді. Обьектінің бетіне графикалық 1. Кластар және Delphi-дің обьектілері Интерфейс орындалуына Delphi-дің кластар кітапханасы қолданылады, соның ішінде әртүрлі Жобалау кезінде Delphi қосымшасының фоормалары программаның мәтініне қажетті обьектілерді Type TForm1=class(TForm) Private {Private declarations} Public {Public declarations} End; Var Form1:TForm1 Кластар – бұл күрделі программаларды жеңілдету және оның сапасын 2.1 Мұрагерлік Объекті бағдарланған программалауда екінші «діңгек» болып мұрагерлік саналады. Бұл Мұрагерлік – обьектіге бағытталған бағдарламалаудың басты механизмдерінің бірі. Оның Мұрагерлік дегеніміз – программалық жабдықтауда негізгі кластан туынды класты Негізгі кластан туынды класс, ал туынды кластан жаңа туынды пайда болады. Туынды кластан негізгі кластың жабық элементтеріне рұқсат Жаңа класты жобалай отырып алдын ала оның обьектілері қандай Түрлі класс обьектілері мен кластардың өздері алдын ала құрастырған Кез келген класс басқа кластан туындайды. Ол үшін оны TchildClass=Class(TParentClass) Туындаған кластан автоматты түрде өзінің ата – анасының өрісі, TObject Pascal – дың барлық кластары жалғыз ата – TaClass=Class(Tobject) TаClass=Class Мұрагерлік принципі TОbject класынан оның ұрпақтарына қарай дами отырып, Обьектіге бағытталған бағдарламаның мұрагерлік қасиеті бұрыннан анықталған кластарға жаңа Туындысын жариялағанда алғы буынның атын міндетті түрде көрсету қажет. 3 - суретте Delphi – дегі кластар тармағы келтірілген. 3 – сурет. Delphi – дегі кластар тармағы 2.2 Полиморфизм Полиморфизм – бұл бір атты екі немесе одан да Полиморфизм – бұл мағынасы ұқсас мәселелерді әртүрлі тәсілмен шешетін Object Pascal тілінде полиморфизм тек жоғарыда сипатталған мұрагерлік механизмі Полиморфизм концепциясы әр әдістің обьектіге және сол уақытта әдістің Сонымен қатар, полиморфизм операторларға да қолданылады. Барлық программалау тілдерінде Полиморфизмнің қолдануына ең жақсы мысал ретінде Delphi ортасын қолданамыз. Полиморфизм - әртүрлі кластарға жататын әдістерге бір атауды қолдану Үш класс анықталсын дейік, оның біреуі екеуіне негізгі болады. Type // негізгі класс TPerson = class Fname:string; // аты Constructor Create(name:string); Function info:string; virtual; End; TStud = Class(TPerson) Fgr:integer; // группа номері Constructor Create(name:string; gr:integer); Function info:string; override; End; TProf = class(TPerson) Fdep:integer; // кафедра атауы Constructor Create(name:string; dep:string); Function info:string; override; End; Әрбір осы кластың info әдісі анықталған. Негізгі класта virtual Жарнама әдісі кішігірім класқа виртуалдық әдісті өзінің жеке меншігіне Әрбір кішігірім кластың өзінің info әдісі анықталған. Function TPerson.info:string; Begin Result:=’’; End; Function TPerson.info:string; Begin Result:fname + ‘гр.’+inttostr(fgr); End; Function TPerson.info:string; Begin Result:fname + ‘каф.’+fdep; End; Сол сияқты екі класта негізгіден шыққандықтан, мұғалімдер мен студенттердің List:array[1..SZL] of TPerson; Тізімді мынандай тәсілмен хабарлауға болады, себебі оған Object Массив элементтері арқылы студенттер мен мұғалімдердің тізімін шығару info St:=’’; For i:=1 to SZL do // If list[i] NIL Then st:=st+list[i]. info+#13; ShowMessage(st); Программаның жұмыс істеу барысында әрбір массив элементі TStud және Келесі программа жоғарыда көрсетілген кластардың TPerson, TStud және Tprof 4 - сурет. Полиморфизм программасының сұхбат терезесі. Unit polimor_; Interfase Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = class(TForm) Edit1:TEdit; Edit2:Edit; GrupBox1:TGrupBox; Radiobutton1:TRadiobutton; Radiobutton2:TRadiobutton; Label1:TLabel; Label2:TLabel; Button1:TButton; Button2:TButton; Procedure Button1Click(Sender:TObject); Procedure Button2Click(Sender:TObject); Private {Private declarations} Public {Public declarations} End; Type // негізгі класс TPerson = class Fname:=string; // аты Constructor Create(name:string); Function info:string; virtual; End; // студент класы TStud = class(TPerson) fGr:integer; // гриппа номірі constructor Create(name:string; gr:integer); function info:string; override; end; // мұғалім класы TProf = class(TPerson) Fdep:string; // кафедра атауы Constructor Create(name:string; dep:integer); Function info:string; override; End; Const SZL = 10; // тізім өлшемі Var Form1:TForm1; List:array[1..SZL] of TPerson; // тізім n:integer = 0; implementation {$R * DFM} Constructor TPerson.Create(name:string); Begin Fname:=name; End; Constructor TStud.Create(name:string; gr:integer); Begin Inherited Create(name); // негізгі кластың конструкторын шақыру fGr:=gr; end; Constructor TStud.Create(name:string; dep:integer); Begin Inherited Create(name); // негізгі кластың конструкторын шақыру fDep:=dep; end; function TPerson.Info:string; begin result:=fname + ‘гр.’ +inttostr(fGr); end; function TPerson.Info:string; begin result:=fname + ‘каф.’ +inttostr(dep); end; // Қосу батырмасын шерту Procedure TForm1.Button1Click(Sender:TObject); Begin If n

Мәтінді көшіру үшін белсенді жазылым қажет.

Пайдаланушы ID: 613040

Жарияланған күні: