Кластар иерархиясы
Мазмұны
І.Кіріспе.........................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
Кластар иерархиясы
С тіліндегі кластар және олардың түрлері
Автоматты жүйелерді жобалау пәнінен электронды оқулық жасау
Delphi ортасында бағдарламалау ( әдістемелік құрал )
Әртүрлі елдердің өнертабыстарды классификациялау жүйелері
C# Тілінің негіздері
Конструктордың қызметі - класс объектісінің өрістерін инициализациялау
RDF моделінің синтаксисі
Параллельді кодтау жүйелері
С++(объектілі-бағытталған программалау)