Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 60

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

[A]

x.g (u, v, ...)


ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π² тСкстС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ r класса C ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ x это Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. Как ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ? Класс C Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² систСму, ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π·Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° Ace. Π”Π°Π»Π΅Π΅ слСдуСт Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ систСмы, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ начнСтся с создания экзСмпляра ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ класса. ΠšΠΎΡ€Π½Π΅Π²Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° создания Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прямо ΠΈΠ»ΠΈ косвСнно создадут ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ C_OBJ - экзСмпляр класса C, Π° Π·Π°Ρ‚Π΅ΠΌ выполнят Π²Ρ‹Π·ΠΎΠ²:


[B]

a.r (...)


Π³Π΄Π΅ a присоСдинСно ΠΊ C_OBJ. Π”Π°Π»Π΅Π΅ Π²Ρ‹Π·ΠΎΠ² [A] Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ g с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π² качСствС Ρ†Π΅Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, присоСдинСнный ΠΊ полю x ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° C_OBJ.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ событий, происходящих Π² процСссС выполнСния систСмы. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ систСму Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. ВСкст ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, СстСствСнно, Π½Π΅ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ этом случаС СдинствСнная доступная для обозрСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ событий это порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ инструкции Π² Ρ‚Π΅Π»Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π”Π°ΠΆΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ систСмы структура Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π° Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния порядка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, бСзусловно Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠ°Ρ, практичСски оказываСтся ΠΎΡ‡Π΅Π½ΡŒ слоТной. Π’Π°ΠΆΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ интСрСсно. НСобходимо ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ класс являСтся вСсьма повСрхностным свойством систСмы. Π­Ρ‚ΠΎ частный Π²Ρ‹Π±ΠΎΡ€, сдСланный ΡƒΠΆΠ΅ послС формирования Π½Π°Π±ΠΎΡ€Π° классов. ВсСгда Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ достаточно просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ класса.

Π­Ρ‚ΠΎΡ‚ ΡƒΡ…ΠΎΠ΄ ΠΎΡ‚ упорядочСния являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ стимулируСт созданиС Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ систСм. Π’ Ρ†Π΅Π½Ρ‚Ρ€Π΅ внимания Π½Π΅ "порядок выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹", Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π½Π°Π±ΠΎΡ€Π° классов. "ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ", Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эти возмоТности Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² процСссС выполнСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмы, являСтся Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹ΠΌ свойством. (Π‘ΠΌ. "ΠŸΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ упорядочСниС", лСкция 5)

Π”Π°Π½Π½Ρ‹Π΅ наблюдСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ программиста ΠΊΠ°ΠΊ ΠΏΠΈΡ€ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΈΠ»ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Ρ€Π°Π·ΠΆΠΈΠ³Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ костСр. Он складываСт Π΄Ρ€ΠΎΠ²Π°, слСдя Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ связи присутствовали. Π”Π°Π»Π΅Π΅ ΠΎΠ½ Π·Π°ΠΆΠΈΠ³Π°Π΅Ρ‚ спичку ΠΈ слСдит Π·Π° ΠΎΠ³Π½Π΅ΠΌ. Если структура ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π°, Ρ‚ΠΎ Π½Π΅Ρ‚ нСобходимости ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π³ΠΎΡ€Π°Π½ΠΈΠΉ. Достаточно Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ каТдая Ρ‡Π°ΡΡ‚ΡŒ, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΡ‹Ρ…Π½ΡƒΡ‚ΡŒ, загорится ΠΈ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ обоснования ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… принятых Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, связанных с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Аналогичными Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ всС Π»Π΅ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вводятся Π½ΠΎΠ²Ρ‹Π΅ понятия.

Π€ΠΎΡ€ΠΌΠ° объявлСний

ΠžΡ‚Ρ‚ΠΎΡ‡ΠΈΠΌ наши критичСскиС Π½Π°Π²Ρ‹ΠΊΠΈ Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π° Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ сущСствСнном. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°Ρ‡Π½Π΅ΠΌ с синтаксиса. Рассмотрим Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΈ объявлСнии ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… языков ΠΌΡ‹ Π½Π΅ использовали для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов procedure ΠΈΠ»ΠΈ function. Π€ΠΎΡ€ΠΌΠ° объявлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° позволяСт ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π›ΡŽΠ±ΠΎΠ΅ объявлСниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° всСгда начинаСтся с Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ:


f ...


Π’Π΅ΠΌ самым сохраняСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ дальнСйшСго опрСдСлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° любого Ρ‚ΠΈΠΏΠ°. Если Π΄Π°Π»Π΅Π΅ присутствуСт список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²


g (a1: A; b1: B; ...) ...


Ρ‚ΠΎ понятно, Ρ‡Ρ‚ΠΎ g ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ:


f: T ...

g (a1: A; b1: B; ...): T ...


Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ - f ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ заканчиваСтся ΠΈ g ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Для f Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ слСдуСт Π·Π° T. Если Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‚ΠΎ f это Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:


my_file: FILE


Но Ссли Π΄Π°Π»Π΅Π΅ присутствуСт ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово is, Π° Π·Π° Π½ΠΈΠΌ Ρ‚Π΅Π»ΠΎ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (do ΠΈΠ»ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ once ΠΈ external, рассматриваСмыС ΠΏΠΎΠ·ΠΆΠ΅), ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:


f: T is

-- ...

do ... end


Ρ‚ΠΎ f - функция. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚


f: T is some_value


опрСдСляСт f ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚-константу (constant attribute), Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π½ΠΎ some_value. (Атрибуты-константы ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 18)

Π’Π°ΠΊΠΎΠΉ синтаксис позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², подчСркивая Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΈΡ… Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ общности. Π‘Π°ΠΌΠΎ понятиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π»Π΅ΠΆΠΈΡ‚ Π² руслС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ доступа. ΠžΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒ Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² основана Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ….

Атрибуты ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ слСдствия ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ доступа ΠΈ объСдинСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ΄ ΠΎΠ±Ρ‰ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ - ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. (Π‘ΠΌ."Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ доступ", лСкция 3. Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π½Π½ΡƒΡŽ Π»Π΅ΠΊΡ†ΠΈΡŽ.)

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ модуля ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊΠΎ всСм Π΅Π³ΠΎ сСрвисам ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ нСзависимо ΠΎΡ‚ способа ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π² Ρ€ΠΎΠ»ΠΈ сСрвисов Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ класса, ΠΈ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ функциями.

Рассмотрим класс PERSON, содСрТащий ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ° INTEGER Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Если Π°Π²Ρ‚ΠΎΡ€ клиСнтского класса записываСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅


Isabelle.age


Ρ‚ΠΎ СдинствСнно Π²Π°ΠΆΠ½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ age Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возраста экзСмпляра PERSON, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎ врСмя выполнСния присоСдинСн ΠΊ сущности Isabelle. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ age ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° birth_date ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ. Автору клиСнтского класса Π½Π΅Ρ‚ нСобходимости Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· этих Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π²Ρ‹Π±Ρ€Π°Π» Π°Π²Ρ‚ΠΎΡ€ PERSON.

Нотация для доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° Π²Ρ‹Π·ΠΎΠ²Ρƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ для объявлСния этих Π²ΠΈΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, насколько это ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Если Π² дальнСйшСм Π°Π²Ρ‚ΠΎΡ€ класса Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ‚ΠΎ это Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ отразится Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса.

Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… зрСния поставщика ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ прСдставлСно Π½Π° рис. 7.4 ΠΈ рис. 7.5, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для опрСдСлСния понятия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Рис. 7.5 ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ - это Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ прСдставлСниС с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ поставщиком. Рис. 7.4 Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ критСрия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ запросами - это внСшнСС прСдставлСниС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

РСшСниС Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠ°ΠΊ эквивалСнтныС для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… слСдствия, рассматриваСмыС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… лСкциях:

[x]. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ слСдствиС касаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Бтандартная докумСнтация класса для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, извСстная ΠΊΠ°ΠΊ краткая Ρ„ΠΎΡ€ΠΌΠ° класса, составляСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ отсутствовала Ρ€Π°Π·Π½ΠΈΡ†Π° Π² описаниях Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². (Π‘ΠΌ. "ИспользованиС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ: краткая Ρ„ΠΎΡ€ΠΌΠ° класса", лСкция 11)

[x]. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ слСдствиС связано с наслСдованиСм, ΠΊΠ°ΠΊ основным способом Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… элСмСнтов ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ условиям Π±Π΅Π· Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ПО. Если Π½Π΅ΠΊΠΈΠΉ класс содСрТит ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ допустимо Π² классах-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ… ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. (Π‘ΠΌ. "ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°", лСкция 14)

Экспорт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ дискуссии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ вопрос ΠΎΠ± экспортС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². РассмотрСнный Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ класс POINT ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ x ΠΈ y ΠΈ экспортируСт ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ rho ΠΈ theta. Для получСния значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ обычная нотация для Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ my_point.x ΠΈΠ»ΠΈ my_point.theta.

Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ экспорта Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² отличаСтся ΠΎΡ‚ соглашСний, принятых Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ОО-языках. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся Smalltalk, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ экспортированы классом, Π° прямой доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ (свойствам) Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½.