1.Ïðîöåäóðíîå ïðîãðàììèðîâàíèå
Ïðîãðàììà èìååò ïðîñòóþ ñòðóêòóðó - ïîäïðîãðàììà, ìàíèïóëèðóþùàÿ
ñòðóêòóðàìè è ïåðåìåííûìè â îáùåé îáëàñòè âèäèìîñòè.
2. Ìîäóëüíîå ïðîãðàììèðîâàíèå
3. Îáúåêòíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå.
1
Íàñëåäîâàíèå - îòíîøåíèå ìåæäó îáúåêòàìè, êîãäà îäèí îáúåêò ïîâòîðÿåò
ñâîéñòâà è ïîâåäåíèå äðóãîãî.
Òèïû âåðõíèõ óðîâíåé ÎÎ èåðàðõèè êàê ïðàâèëî íå èìåþò êîíêðåòíûõ
ðåàëèçàöèé. Òàêèå òèïû íàçûâàþòñÿ àáñòðàêòíûìè.
Íàñëåäîâàíèå ïîçâîëÿåò èñïîëüçîâàòü áèáëèîòåêè êëàññîâ è ìîäèôèöèðîâàòü
èõ â çàâèñèìîñòè îò ðàçëè÷íûõ çàäà÷, ò.å. ñîçäàâàòü íîâûå êëàññû, èçìåíÿÿ
èëè äîïîëíÿÿ óæå ñóùåñòâóþùèå. Îáúåêò - íàñëåäíèê ïîëó÷àåò âñå ïîëÿ
è ìåòîäû îáúåêòà - ïðåäêà, íî ìîæåò çàïîëíèòü èõ ñîáñòâåííûìè ïîëÿìè è
ìåòîäàìè.
Ïîëèìîðôèçì ïîçâîëÿåò èñïîëüçîâàòü îäíè è òå æå ôóíêöèè äëÿ ðåøåíèÿ
ðàçíûõ çàäà÷. Ïîä îäíèì èìåíåì ñêðûâàþòñÿ ðàçëè÷íûå äåéñòâèÿ, ñîäåðæàíèå
êîòîðûõ çàâèñèò îò òèïà îáúåêòà.
 ðàìêàõ ÎÎÏ ïîâåäåíèå îáúåêòà îïðåäåëÿåòñÿ âõîäÿùèìè â íåãî ìåòîäàìè.
Ìåíÿÿ àëãîðèòì òîãî èëè äðóãîãî ìåòîäà â ïîòîìêàõ îáúåêòà ìîæíî ïðèäàâàòü
ïîòîìêàì îòñóòñòâóþùèå è ðîäèòåëåé ñïåöèôè÷íûå ñâîéñòâà.
2. Ìåòîäû
3. Ñâîéñòâà
2
ñåëåêòîðû - âîçâðàùàþò íåêîòîðóþ õàðàêòåðèñòèêó îáúåêòà
4.
4 Êîíñòðóêòîð è äåñòðóêòîð
1. Åñòåñòâåííîñòü
2. Íàäåæíîñòü
3. Ïîâòîðíîå èñïîëüçîâàíèå êîäà
4. Ñïîñîáíîñòü ê ðàñøèðåíèþ
5. Óäîáñòâî ìîäèôèêàöèè ïðîãðàììíîãî îáåñïå÷åíèÿ.
3
6 Èíêàïñóëÿöèÿ
7 Ñâîéñòâà
2. Ïî èñïîëüçîâàíèþ èíäåêñîâ
3. Ïî òèïó äàííûõ
4
Ïî èíäåêñèðîâàíèþ ðàçäåëÿþòñÿ íà:
1. Ïðîñòûå ñâîéñòâà
2. Ñâîéñòâà -ìàññèâû
3. Ñâîéñòâà ñî ñïåöèôèêàòîðîì èíäåêñà
Ïðîñòûå ñâîéñòâà
Ïðîñòûå ñâîéñòâà ïîçâîëÿþò ðàáîòàòü êàê íåïîñðåäñòâåííî ñ ïåðåìåííûìè,
òàê è ñ ïîìîùüþ ñîîòâåòñòâóþùèõ ìåòîäîâ.
Åñëè ïðîñòûå ñâîéñòâà ðàáîòàþò ñ ïîëÿìè äàííûõ íàïðÿìóþ òèï ýòèõ
ñâîéñòâ äîëæåí ñîâïàäàòü ñ òèïàìè ïîëåé.
 ñïåöèôèêàòîðå read è write óêàçûâàþòñÿ ñîîòâåòñòâóþùèå ïîëÿ äàííûõ.
Ïðè ðàáîòå ñ ïîëÿìè äàííûõ ïîñðåäñòâîì âûçîâîì ìåòîäîâ ñïåöèôèêàòîðîì
read è write óêàçûâàþòñÿ ñîîòâåòñòâóþùèå ìåòîäû.
Ìåòîä ÷òåíèÿ - ôóíêöèÿ áåç ïàðàìåòðîâ ñ âûõîäíûìè çíà÷åíèÿìè, ñîîòâåòñòâóþùèõ
òèïó ïîëÿ äàííûõ.
Ìåòîä çàïèñè - ïðîöåäóðà ñ îäíèì ïàðàìåòðîì, òèï ýòîãî ïàðàìåòðà ñîîòâåòñòâóåò
òèïó äàííûõ ïîëÿ.
8 Ñâîéñòâà - ìàññèâû
Íàëè÷èå ñïèñêà èíäåêñíûõ ïàðàìåòðîâ, êîòîðûå ïåðå÷èñëÿþòñÿ â êâàäðàòíûõ
ñêîáêàõ.
Ïðÿìîå óêàçàíèå èäåíòèôèêàòîðîâ ïîëÿ çàïðåùåíî.
Ìåòîä ÷òåíèÿ - ôóíêöèÿ, ó êîòîðîé êîëè÷åñòâî, òèïû è ïîðÿäîê ïàðàìåòðîâ
ñîîòâåòñòâóåò èíäåêñó ïàðàìåòðà ñâîéñòâà.
Âîçâðàùàåìîå çíà÷åíèå ôóíêöèè äîëæíî ñîâïàäàòü ñ òèïîì ñâîéñòâà.
Ìåòîä çàïèñè - ýòî ïðîöåäóðà, ó êîòîðîé êîëè÷åñòâî, òèïû è ïîðÿäîê
íà÷àëüíûõ ïàðàìåòðîâ ñîîòâåòñòâóåò îïèñàíèþ èíäåêñíûõ ïàðàìåòðîâ. Êðîìå
òîãî, â ñïèñêå ïàðàìåòðîâ äîëæåí ïðèñóòñòâîâàòü îäèí äîïîëíèòåëüíûé ïàðàìåòð
òàêîãî æå òèïà, êàê è ó ñâîéñòâà äëÿ ïåðåäà÷è íîâîãî çíà÷åíèÿ.
Òèï èíäåêñîâ è ñâîéñòâà-ìàññèâà ìîæåò áûòü ëþáûì, íå îáÿçàòåëüíî ïîðÿäêîâûì.
Îòëè÷èÿ ñâîéñòâ ìàññèâà îò ïåðåìåííûõ òèïà “ìàññèâ”.
1. Îáðàùåíèå ê ñâîéñòâó ìàññèâîâ êàê ê åäèíîìó öåëîìó íå äîïóñêàåòñÿ.
Ðàçðåøèìû äåéñòâèÿ òîëüêî ê îòäåëüíûì ýëåìåíòàì.
2. Òèï èíäåêñîâ ñâîéñòâ ìàññèâà ìîæåò áûòü ëþáûì, íå òîëüêî ïîðÿäêîâûì.
Åñëè äàííûé êëàññ ïðåäñòàâëÿåòñÿ ìàññèâîì è íåîáõîäèìî îáåñïå÷èòü ê ýòèì
äàííûì èçâíå êëàññà, èñïîëüçóþòñÿ ñâîéñòâà ìàññèâû. Ñâîéñòâà ìàññèâû
äîëæíû èìåòü ñòîëüêî èíäåêñíûõ ïàðàìåòðîâ, êàêîâà ðàçìåðíîñòü ìàññèâà,
äîñòóï ê êîòîðîìó îíè ðåàëèçóþò.
Èñïîëüçóÿ äèðåêòèâó default ñî ñâîéñòâîì ìàññèâîì ìîæíî óêàçàòü, êàêîå
èç ñâîéñòâ äàííîãî êëàññà èñïîëüçóåòñÿ ïî óìîë÷àíèþ.
5
9 Ñâîéñòâà ñî ñïåöèôèêàòîðîì èíäåêñà
10 Ìîäóëè.
6
Îïåðàöèè äàííîãî ðàçäåëà âûïîëíÿþòñÿ îäèí ðàç ïðè çàãðóçêå ìîäóëÿ.
finilization
Îïåðàòîðû, íåîáõîäèìûå äëÿ êîððåêòíîãî çàâåðøåíèÿ ðàáîòû ìîäóëÿ.
íàïðèìåð free.
Âìåñòî ñåêöèé initialization è finilisation ìîæåò ñòîÿòü ïðîñòî begin.
Ìíîãîêðàòíîå èñïîëüçîâàíèå êîäà
Ñóùåñòâóåò äâà âèäà ïîâòîðíîãî èñïîëüçîâàíèÿ êîäà: èñïîëüçîâàíèå è
íàñëåäîâàíèå.
Èñïîëüçîâàíèå:
1. Îáúåêò îäíîãî êëàññà (èñïîëüçóåìîãî) ïðèñóòñòâóåò êàê ïîëå äàííûõ
äðóãîãî êëàññà.
2. Îáúåêò èñïîëüçóåìîãî êëàññà äîñòóïåí ãëîáàëüíî.
11 Íàñëåäîâàíèå
7
2. Ïåðåìåííóþ èìåþùóþ òèï ïîòîìêà íåëüçÿ ïðèñâàèâàòü ïåðåìåííîé
òèïà êëàññà ïðåäêà.
Îäíàêî, åñëè ôàêòè÷åñêèå òèïû ñîâïàäàþò, òî ïðèñâàèâàíèå âîçìîæíî îäíèì
èç äâóõ ñïîñîáîâ.
1. hòèïi (hîáúåêòi)
Îïåðàöèÿ íå ïðîâåðÿåò ñîâìåñòèìîñòü òèïîâ è èñïîëüçîâàòü åå ñëåäóåò ñ
îñîáîé îñòîðîæíîñòüþ.
2. hîáúåêòi as hòèïi
 ñëó÷àå íåñîâìåñòèìîñòè âûçûâàåò èñêëþ÷åíèå
Äëÿ ïðîâåðêè íà ïðèíàäëåæíîñòü òèïó èñïîëüçóåòñÿ îïåðàöèÿ is.
13 Ïîëèìîðôèçì.
9
Ïðè âûçîâå äèíàìè÷åñêîãî ìåòîäà ïðîèñõîäèò ïîèñê â ýòîé òàáëèöå. Â
òîì ñëó÷àå, åñëè òðåáóåìûé ìåòîä íå íàéäåí, ïðîèñõîäèò ïðîñìîòðè òàáëèö
âñåõ êëàññîâ-ïðåäêîâ â ïîðÿäêå èåðàðõèè, äî òåõ ïîð, ïîêà òðåáóåìûé ìåòîä
íå áóäåò íàéäåí.
Âèðòóàëüíûå ìåòîäû, êîòîðûå îïðåäåëåíû â êëàññå, íî íèêîãäà íå âûçûâàþòñÿ
îáúåêòàìè äàííîãî êëàññà è äîëæíû ïåðåîïðåäåëÿòüñÿ â êëàññå ïîòîìêå -
àáñòðàêòíûå ìåòîäû.
Îáúÿâëÿþòñÿ ñ ïîìîùüþ äèðåêòèâû abstract, à ïîòîì dynamic èëè virtual.
Îñíîâíîå ïðåäíàçíà÷åíèå: áûòü ðîäîíà÷àëüíèêîì èåðàðõèè êîíêðåòíûõ
ìåòîäîâ êëàññà-íà÷àëüíèêà.
18 Ðàñøèðÿåìîñòü êîäà.
10
Êëàññ Exception è åãî íàñëåäíèêè.Ýòî ïðÿìîé íàñëåäíèê TObject. Îïèñûâàåò íàèáîëåå îáùèå õàðàê
è ñïîñîáû ñîçäàíèÿ èñêëþ÷åíèé. Âñå îñòàëüíûå èñêëþ÷åíèÿ
íàñëåäíèêàìè ýòîãî êëàññà.
EConvertError
EIntOverflow
ERangeError
EDivByZero
EMathError - happens with floats
Exception
EMyException = class (Exception)
20 Áëîê try-except
ïðåäíàçíà÷åí äëÿ îñóùåñòâëåíèÿ ñïåöèàëüíîé ðåàêöèè â ñîîòâåòñòâèè ñ òèïîì
âîçíèêøåãî èñêëþ÷åíèÿ.
try
//çàùèùàåìûé áëîê
except
//îáðàáîòêà èñêëþ÷åíèé
end;
 çàùèùàåìîì áëîêå ïðèñóòñòâóþò ëþáûå îïåðàòîðû object pascal. Îíè
áóäóò âûïîëíÿòüñÿ ïîñëåäîâàòåëüíî.
Åñëè ïðè âûïîëíåíèè âîçíèêàåò èñêëþ÷èòåëüíàÿ ñèòóàöèÿ óïðàâëåíèå
ïåðåäàåòñÿ ñëåäóþùåìó áëîêó.
 íåì ìîæåò áûòü ïîñëåäîâàòåëüíîñòü îáû÷íûõ îïåðàòîðîâ. Îíè áóäóò
âûïîëíåíû, åñëè â çàùèùàåìîì áëîêå âîçíèêíåò èñêëþ÷åíèå. Ïîñëå âûïîëíåíèÿ
ýòèõ îïåðàòîðîâ èñêëþ÷åíèå ñ÷èòàåòñÿ îáðàáîòàííûì è ðàáîòà ïðîäîëæèòñÿ
ñî ñëåäóþùåãî îïåðàòîðà ïîñëå ñëîâà end;
Îïåðàòîðû âûáîðà èñêëþ÷åíèé îáåñïå÷èâàþò èçáèðàòåëüíóþ îáðàáîòêó
èñêëþ÷åíèé.
 òàêîì ñëó÷àå áëîê except ñîñòîèò èç ïðîèçâîëüíîãî êîëè÷åñòâà ïðåäëîæåíèå
âèäà:
on [hèìÿîáúåêòàèñêëþ÷åíèÿi] do îïåðàòîð
 ñëó÷àå âîçíèêíîâåíèÿ èñêëþ÷èòåëüíûõ ñèòóàöèé â ñîîòâåòñòâèè ñ òèïîì
èñêëþ÷åíèÿ áóäåò ïåðåäàíî óïðàâëåíèå.
helsei îïåðàòîð
21 try-finally
try-finally èñïîëüçóåòñÿ äëÿ âûïîëíåíèÿ îáÿçàòåëüíûõ äåéñòâèé ïî îñâîáîæäåíèþ
ðåñóðñîâ â çàùèùàåìîì áëîêå.
Ïîñëå âûïîëíåíèÿ áëîêà finally èñêëþ÷åíèå, åñëè òàêîå âîçíèêëî, íå ñ÷èòàåòñÿ
îáðàáîòàííûì è ïåðåíîñèòñÿ â âûøå ñòîÿùèé áëîê îáðàáîòêè èñêëþ÷åíèé.
11
Åñëè æå èñêëþ÷åíèå íå âîçíèêëî, òî âûïîëíåíèå ïðîäîëæàåòñÿ ñî ñëåäóþùåãî
îïåðàòîðà ïîñëå end;
Áëîêè try-except è try-finally ìîãóò èìåòü ïðîèçâîëüíóþ ãëóáèíó è ïðîèçâîëüíîå
÷åðåäîâàíèå.
Åñëè ïðè âûïîëíåíèè êîíñòðóêòîðà íåêîòîðîãî îáúåêòà âîçíèêàåò èñêëþ÷åíèå
è îíî ïåðåõîäèò ãðàíèöó êîíñòðóêòîðà, òî àâòîìàòè÷åñêè âûçûâàåòñÿ äåñòðóêòîð
äëÿ ýòîãî îáúåêòà ó íåäîêîíñòðóèðîâàííîãî îáúåêòà.
12