SJSffpUfl'jW
Причем в каждом методе объекта считаются известными
(видимыми) все поля этого объекта. Токое слияние информа-
ции об объекте (полей) и методов его поведения (функцио-
нирования, деятельности) в едином объектном типе позволя-
ет создавсть замкнутую, законченную среду для виртуализа-
ции прототипов практически любой сложности, начиная от
простой линии на экране дисплея или обычного электронно-
го регулировщика дорожного движения (светофора) вплоть
до сложнейших молекулярных и галактических систем.
То, что было, вы ноблюдали выше, называется не самим
объектом, а лишь
объектным типом.
Чтобы стало возможным
применять свойства объекта, необходимо создать
экземпляр
объекта,
объявив переменную объектного типа:
В дальнейшем для тестирования объектов будем исполь-
зовоть следующую программу:
U s e s p r o f i l e r . G r a p h ;
v a r G r a p h D r i v e r , G r a p h M o d e , E r r o r C o d e : I n t e g e r ;
t y p e
T L i n e = o b j e c t
p r o c e d u r e I n i t G r p ;
b e g i n
{драйвер и режимы по умолчанию}
G r a p h D r i v e r : = D e t e c t ;
{драйвер egavga.bgi в текущей папке}
I n i t G r a p h ( G r a p h D r i v e r , G r a p h M o d e , ' e g a v g a . b g i ' ) ;
v a r
L i n e : T L i n e ;
после чего можно обротиться (вызвать, выполнить) любой ме-
тод объекта, указав составное имя метода, составленное по
аналогии с селектором записи. Но необходимо помнить, что
слева от точки всегда должна находиться переменная объ-
ектного типа, а спрова — имя метода или поля:
b e g i n
L i n e . C r e a t e ( 1 0 0 , 1 0 0 , 2 0 0 , 2 0 0 ) ;
L i n e . E n a b l e ;
L i n e . M o v e ( 2 0 0 , 1 0 0 ) ;
e n d .
Если таких обращений к элементам объекта много, то, по
аналогии с зописями, для объектов допустимо применение
оператора присоединения.
Тогда данный фрагмент кода бу-
дет выглядеть так:
E r r o r C o d e : = G r a p h R e s u l t ;
{обработка ошибки}
i f E r r o r C o d e о
g r O K t h e n b e g i n
W
r i t e l n ( ' G r a p h i c s e r r o r : ' ,
G r a p h E r r o r M s g ( E r r o r C o d e ) ) ;
C l o s e G r a p h ;
H
a l t ( l ) ;
e n d ;
e n d ;
v a r
L i n e : T L i n e ;
' j : i n t e g e r ;
B e g i n
I n i t G r p ;
L i n e . C r e a t e ( 1 0 0 , 1 0 0 , 2 0 0 , 2 0 0 ) ;
L i n e . E n a b l e ;
b e g i n
w i t h L i n e d o b e g i n
C r e a t e ( 1 0 0 , 1 0 0 , 2 0 0 , 2 0 0 ) ;
E n a b l e ;
M o v e ( 2 0 0 , 1 0 0 ) ;
r e a d l n ;
f o r j : = 1 t o 1 0 0 d o b e g i n
L i n e . M o v e ( 1 0 0 + j , 1 0 0 ) ;
{временная задержка 25 мс}
N e w D e l a y ( 2 5 ) ;
e n d ;
e n d .
Следует заметить: несмотря на то, что к полям объекта
можно обращаться так же непосредственно, как и к его ме-
тодам, это желательно проделывать только внутри его ме-
тодов, так как обращ ение к полю объекта напрямую из про-
граммы является отступлением от объектно-ориентирован-
ного стиля программирования. Вообще, следует осуществ-
лять все манипуляции с полями объекта только через его ме-
тоды. Следующий код эквивалентен вызову метода
L i n e . C r e -
a t e ( 1 0 0 , 1 0 0 ,
2 0 0 , 2 0 0 )
и не вызовет ошибки, но в даль-
нейшем лишит программу гибкости, так как реализация ме-
тода
C r e a t e может претерпеть измене-
ния, дополнения, а данный код будет ра-
ботать все так же по старинке,
b e g i n
w i t h L i n e d o b e g i n
F L e f t : = 1 0 0 ;
F T o p : = 1 0 0 ;
F R i g h t : = 2 0 0 ;
F B o t t o m : = 2 0 0 ;
F C o l o r : = W h i t e ;
F E n a b l e d : = f a l s e ;
e n d ;
e n d .
Поэтому логичнее вызывоть метод, вме-
сто того, чтобы изменять зночения полей
объекта непосредственно из программы.
К тому же вызов метода выглядит короче,
что повысит читабельность программы.
Используя идентификатор объектного
типа в v a r-блоке, можно объявить сколь
угодно экземпляров объекта.
Из всех подпрограмм, описанных в лис-
тинге программы и используемых ею моду-
лях, в результативный код войдут только те,
к которым есть обращения (вызовы). Ана-
логична ситуация и с методоми объектов,
то есть в результативный код войдут толь-
ко вызываемые методы объекта, что позво-
лит повысить эффективность программ.
e n d ;
r e a d l n ;
C l o s e G r a p h ;
E n d .
где для вывода на графический экран будем использовоть
возможности модуля G raph из пакета
Turbo Pascal.
При запуске программы на экране появится белая линия,
а после нажатия на клавишу
Enter
линия будет плавно дви-
гаться вправо. Выполнение программы завершается повтор-
ным нажатием той же клавиши.
Окончание на стр. 43
КУПИВ
w w w .coryphae.ua
РАДІСТЬ ЯКА!
К О М П ’ЮТЕРИ
"j
І
KO DUO GU
і
Г
І ІНШІЇ] ЯШИ II
Л и ш
е д л я
с п р а в ж
н і х
к о р и ф
е ї в
-
п р и д б а й
п о с у б о т а х з а
о п т о в и м
и
ц і н а м
и !
З
1
липня по ЗО вересня всі суботні придбання - за оптовими цінами!
Тел./факс
(044)
451
0242
предыдущая страница 38 Мой Компьютер 2004 39 читать онлайн следующая страница 40 Мой Компьютер 2004 39 читать онлайн Домой Выключить/включить текст